python处理大型csv文件——pandas数据分析(含有毫秒的时间类型转换,根据需求显示年月日,显示全部行和列,某列频数统计)

打开一个数据集,df=pd.read_csv(‘filename.csv’) #数据集较大时候用分块读取数据方法chunksize=1000,iterator=True
数据集内容为:
A B C D
0 ID_1 ID_2 2015-12-23 12:15:20.799 23
1
.
.
.
查看其中的数据格式print(df.dtypes),C列本是时间,但显示为object类型
A object
B object
C object
D int64
dtype: object

所以要转换为datetime类型,df[‘C’] = pd.to_datetime(df[‘C’]) prinr(df.dtypes)
A object
B object
C datetime64[ns]
D int64
dtype: object

查看数据集中年月日的情况 print(df[‘C’].dt.year.unique(),df[‘C’].dt.month.unique(),df[‘C’].dt.day.unique())

转化时间为只显示年-月:df[‘C’] = df[‘C’].map(lambda x: x.strftime(’%Y-%m’))#’%Y-%m-%d %H:%M:%S.%f’ 年-月-日 时:分:秒.毫秒
index C
941750 2016-03
941751 2016-03
941752 2016-03

完整代码:
import time
from datetime import datetime
import pandas as pd
import numpy as np

df=pd.read_csv(‘filename.csv’,chunksize=10000,iterator=True)
pd.set_option(‘display.max_columns’, None)#显示全部列
pd.set_option(‘display.max_rows’, None)#显示全部行
pd.set_option(‘display.width’,1000)#防止换行显示
for chunk in df:
df=chunk.append(chunk)#连接chunk
#print(df.dtypes)

df['C'] = pd.to_datetime(df['C'])
#print(df.dtypes)

#print(df['C'].dt.year.unique(),df['C'].dt.month.unique(),df['C'].dt.day.unique())

df['C'] =  df['C'].map(lambda x: x.strftime('%Y-%m'))##设置显示‘年-月’
#print(df['C'])

print('数据集中时间出现频数统计排序前10:\n', df['C'].value_counts()[0:10])
**#value_counts()返回的是Series类型,只有一个变量,Series的index**

df[‘created_at’].value_counts().sort_index().plot.bar()#统计结果可视化

补充:
#修改第二列名:df.rename(columns={2:‘new name’},inplace=True)

你可能感兴趣的:(数据分析基础知识)