2016-12-30 2 views
1

私はJavaの開発者であり、PythonとPandasに切り替えるのが少し難解です。イムは、以下のように見えるパンダデータフレームの日付を反復処理しようとしている、私が取得しようとしています何Pandas Dataframeで日付を繰り返し、毎週別の列の数を取得します。

sender_user_id created 
0 1     2016-12-19 07:36:07.816676 
1 33    2016-12-19 07:56:07.816676 
2 1     2016-12-19 08:14:07.816676 
3 15    2016-12-19 08:34:07.816676 

は私の週に発生したトランザクションの合計数のカウントを与えるデータフレームです。フォーラムから私は 'forループ'の構文を得ることができました。これはインデックスだけを反復するものです。基本的には、このような結果のデータフレームが必要です。値フィールドにはsender_user_idのカウントが含まれており、開始日を週ごとに示すために日付を変更する必要があります。

date   value 
0 2016-12-09 20 
1 2016-12-16 36 
2 2016-12-23 56 
3 2016-12-30 32 

ご協力いただきありがとうございます。

答えて

1

私はあなたがweekと集計sizeresampleが必要だと思う:

#cast to datetime if necessary 
df.created = pd.to_datetime(df.created) 
print (df.resample('W', on='created').size().reset_index(name='value')) 
    created value 
0 2016-12-25  4 

offsetsが必要な場合:

df.created = pd.to_datetime(df.created) 
print (df.resample('W-FRI', on='created').size().reset_index(name='value')) 
    created value 
0 2016-12-23  4 

nuniqueで週の集計ごとにユニークな値の数が必要な場合:

df.created = pd.to_datetime(df.created) 
print (df.resample('W-FRI', on='created')['sender_user_id'].nunique() 
     .reset_index(name='value')) 
    created value 
0 2016-12-23  3 
+0

助けてくれてありがとう、しかし、私はresampleと奇妙なエラーを取得します。 –

+0

TypeError:予期しないキーワード引数 'on' –

+0

'df = df.set_index( 'created')'と 'print(df.resample( 'W')。size()。reset_index() [pandas 0.19.0](http://pandas.pydata.org/pandas-docs/stable/whatsnew.html#other-enhancements)がある場合、引数on 'on'が機能するため、 'print(pd.show_versions()) 'のバージョン – jezrael

関連する問題