2017-10-06 49 views
0

我已經在pandas中使用了groupby,但組的標籤只是一個任意值,而我希望這個標籤是索引的原始數據幀(這是datetime),以便我可以創建一個新的數據幀,我可以根據日期時間進行繪圖。Python Pandas - 將索引作爲組的名稱/索引生成數據框

grouped_data = df.groupby(
      ['X',df.X.ne(df.X.shift()).cumsum().rename('grp')]) 

    grouped_data2 = grouped_data['Y'].agg(np.trapz).loc[2.0:4.0] 

列x在1-4具有改變值和第二行代碼旨在向第Y列集成在基團,其中X爲2或3。這些重複單元,因此我不t想要將所有2s和所有3s集成到一起,我希望將它發揮作用的時間段:22222333333作爲一個組,然後再次將np.trapz應用到它所在的下一個組:2222233333。這樣我應該有一個新的數據框,其索引對應於這些時間段的開始和這些時間段的積分值。

回答

0

如果我理解正確,那麼您已將索引設置爲DateTime值?如果是,嘗試石斑魚功能:

df.groupby(pd.Grouper(key={index name}, freq={appropriate offset alias})) 

沒有一個數據集的樣品,我真的不能提供一個完整的解決方案,但是這應該解決您的索引問題:)

Grouper Function tutorial

Offset aliases

相關問題