【发布时间】:2021-10-21 03:52:04
【问题描述】:
我有一个这样的数据框:
data_date value
2016-01-01 1
2016-01-02 2
2017-02-05 3
2017-02-07 4
2017-03-09 5
我需要将其转换为以年为索引、以月为列的表。 (使用 sum 聚合)
最终的输出应该是这样的
Jan | Feb | Mar | Apr | ........... Dec |
2016 3 | xx | xx | xx | ............ |
2017 xx | 7 | 5 | xx | ............ |
这就是我所做的:
为了便于复制:
import pandas as pd
df=pd.DataFrame([
{'data_date': '2016-01-01', 'value': 1},
{'data_date': '2016-01-02', 'value': 2},
{'data_date': '2017-02-05', 'value': 3},
{'data_date': '2017-02-07', 'value': 4},
{'data_date': '2017-03-09', 'value': 5}])
我使用 TimeGrouper 首先将它聚合到每月,如下所示:
df['data_date'] = pd.to_datetime(df['data_date'])
df.set_index('data_date', inplace=True)
grp_df = df.groupby([pd.Grouper(freq='M')]).sum()
所以现在我将数据汇总到每一行,以月/年为单位。 我不知道如何将月份设为列,将年份设为行。
你能帮帮我吗?
【问题讨论】:
标签: python pandas datetimeindex