如果需要每個DataFrame
分開,最好是使用dict of DataFrames
:由strftime
創建string
小號
rng = pd.date_range('2017-04-03', periods=10, freq='20D')
df = pd.DataFrame({'a': range(10)}, index=rng)
print (df)
a
2017-04-03 0
2017-04-23 1
2017-05-13 2
2017-06-02 3
2017-06-22 4
2017-07-12 5
2017-08-01 6
2017-08-21 7
2017-09-10 8
2017-09-30 9
dfs = dict(tuple(df.groupby(df.index.month)))
print (dfs)
{4: a
2017-04-03 0
2017-04-23 1, 5: a
2017-05-13 2, 6: a
2017-06-02 3
2017-06-22 4, 7: a
2017-07-12 5, 8: a
2017-08-01 6
2017-08-21 7, 9: a
2017-09-10 8
2017-09-30 9}
print (dfs[4])
a
2017-04-03 0
2017-04-23 1
或者groupby
如果需要的dict of DataFrames
個月和年份鍵:
dfs = dict(tuple(df.groupby(df.index.strftime('%Y-%m'))))
print (dfs)
{'2017-09': a
2017-09-10 8
2017-09-30 9, '2017-08': a
2017-08-01 6
2017-08-21 7, '2017-06': a
2017-06-02 3
2017-06-22 4, '2017-07': a
2017-07-12 5, '2017-05': a
2017-05-13 2, '2017-04': a
2017-04-03 0
2017-04-23 1}
print (dfs['2017-06'])
a
2017-06-02 3
2017-06-22 4
你是否想用'months'創建12個數據框? – jezrael
這樣做。我更喜歡一個數據框在行中具有月份明確的值 –
您可以添加數據示例嗎? – jezrael