Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/360.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.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_Multi Index - Fatal编程技术网

Python 添加更高级别的列多索引

Python 添加更高级别的列多索引,python,pandas,pivot,multi-index,Python,Pandas,Pivot,Multi Index,我正在寻找一种在pandas中添加更高级别的列索引的方法 我有一个多索引数据帧,如下所示: >>>df product A B C sell_buy sell buy sell buy sell buy group company 1 Bank X 100 50 200 10 20 20 2 Bank Y 20 40 150 40 30

我正在寻找一种在pandas中添加更高级别的列索引的方法

我有一个多索引数据帧,如下所示:

>>>df

   product       A         B         C
   sell_buy      sell buy  sell buy  sell buy 
group company
  1    Bank X     100  50   200  10    20  20
  2    Bank Y      20  40   150  40    30  20
  3    Bank Z     100  20    20  10    40  10
我想在
company
的列中添加一个更高级别的索引,并用今天的日期设置一个行索引(使用类似于
datetime.today()

我尝试了好几次,但我不知道如何让它工作

pd.MultiIndex.from_product([df.columns.levels, ['Bank X']])
pd.MultiIndex.from_product([df.columns.levels, ['product']])

任何帮助都将不胜感激。谢谢大家!

我相信您需要在第一步中将第一级转换为
日期
值,然后通过重塑,以及:


什么是
print(df.index[:3].tolist())
?这是
[(1,'Bank X'),(2,'Bank Y'),(3,'Bank Z')]
再次感谢@jezrael!它非常适合我的需要。我需要更多的练习来处理这些多重指标。。
pd.MultiIndex.from_product([df.columns.levels, ['Bank X']])
pd.MultiIndex.from_product([df.columns.levels, ['product']])
date = pd.Timestamp('today').floor('d')
df.index = pd.MultiIndex.from_product([[date], df.index.get_level_values(1)])

df = df.unstack().reorder_levels([2,0,1], axis=1).sort_index(axis=1)
print (df)
company    Bank X                        Bank Y                        Bank Z  \
product         A        B        C           A        B        C           A   
sell_buy      buy sell buy sell buy sell    buy sell buy sell buy sell    buy   
2020-08-15     50  100  10  200  20   20     40   20  40  150  20   30     20   

company                            
product           B        C       
sell_buy   sell buy sell buy sell  
2020-08-15  100  10   20  10   40