Python表多时间索引
我有以下数据帧:Python表多时间索引,python,pandas,pivot-table,Python,Pandas,Pivot Table,我有以下数据帧: import pandas as pd import datetime df = pd.DataFrame({'T': [datetime.datetime.now(), datetime.datetime.now()], 'V': [1, 2]}) 我想使用年和月作为指数,我可以这样做: df.pivot_table(index = [df['T'].dt.year, df['T'].dt.month], values = 'V') 但是,由于这给了我两列名为T,我无法
import pandas as pd
import datetime
df = pd.DataFrame({'T': [datetime.datetime.now(), datetime.datetime.now()], 'V': [1, 2]})
我想使用年和月作为指数,我可以这样做:
df.pivot_table(index = [df['T'].dt.year, df['T'].dt.month], values = 'V')
但是,由于这给了我两列名为T
,我无法设置margins=True
(抛出错误:名称T出现多次,请使用级别编号)。如何解决此问题?理想情况下,我希望在执行透视时手动命名列,这样我就可以使用Year
和Month
而不是T
和T
有什么想法吗?IIUC,您可以使用rename
重命名您的系列
df.pivot_table(index = [df['T'].dt.year.rename('Year'),
df['T'].dt.month.rename('Month')],
values='V',
aggfunc='sum',
margins=True)
输出:
V
Year Month
2020 1 3
All 3
哦,那很简单,我不知道我在想什么。谢谢