2017-03-17 11 views
1

これは古くからの質問ですが、以前のすべての記事を検索しましたが、私の特定の質問に答える答えは見つけられません。Python groupby datetime

私はNaN値や変な文字が含まれていないこの

Date Position Value 
2010-01-01 PEAK  600 
2010-01-01 BOTTOM 510 
2010-01-02 PEAK  620 
2010-01-02 BOTTOM 500 
... 
2015-03-02 PEAK  700 

のように見えるデータフレームを扱っています。しかし、(元のデータは、「日付」形式ではないので、私は

df1 = df.sort('Date') 
df1['Date'] = pd.to_datetime(df1['Date']) 

を使用して「日付」形式に変換されますが、私はGROUPBYを使用して、グループに自分のデータフレームを試した後に)コマンド

df1.groupby('Date') 

「位置」欄をグループ化し、上の計算を実行する前に、「バリュー、」私は

<pandas.core.groupby.DataFrameGroupBy object at 0x7f880d4f2160> 

何も生成を示したエラーメッセージを取得しておきます。

私のコードでは、同じ日時の値を持つすべての行エントリをまとめてグループ化すると予想されていましたが、それはそうしたことにはなりませんでした。

誰かがこのことを明らかにしてくれたら大変感謝します。

ありがとうございます。

+0

ご了承ください!私はそのジューシーな評判が好きです – Charlie

答えて

2

これはエラーではありません。 groupbyは、groupbyオブジェクトを返します。これは集約関数を呼び出す必要があります。通常、人々は.mean()と呼んでいます。他に誰かがあなたを埋めることができるかもしれない人もいます。

私は正確に何をしたいかわからないので、私は私の例で推測を取るよ

df1.groupby(['Date', 'Position']).mean() 
PEAKとボトム値とのデートや位置によってグループ化されたデータフレームは、すべてのために平均

ウィル出力PEAKとBOTTOMの値を、その特定の日にそれぞれ返します。

ああ、特定の日のピーク値とボトム値しかありません。試してください

df1[['Date', 'Value']].groupby('Date').mean() 

その日の値の平均です。

+0

はい、これは動作します。ご返信ありがとうございます。私はもっ​​と徹底的に文書を読む必要があります。 –

+0

@ChrisT。どんなときも! – Charlie