python処理大型csvファイル-pandasデータ分析(ミリ秒の時間型変換を含み、必要に応じて年月日を表示し、すべての行と列を表示し、ある列の頻度統計)
1624 ワード
データセットを開く、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 int 64 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[‘created_at’].value_counts().sort_index().plot.bar()#統計結果の可視化
補足:#2列目の名前を変更:df.rename(columns={2:‘new name’},inplace=True)
だから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:
', df['C'].value_counts()[0:10])
**#value_counts() Series , ,Series index**
df[‘created_at’].value_counts().sort_index().plot.bar()#統計結果の可視化
補足:#2列目の名前を変更:df.rename(columns={2:‘new name’},inplace=True)