Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python表多时间索引_Python_Pandas_Pivot Table - Fatal编程技术网

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

哦,那很简单,我不知道我在想什么。谢谢