如何将pandas multiindex转换为表列和索引?

w41d8nur  于 2023-05-27  发布在  其他
关注(0)|答案(2)|浏览(147)

我有一个DataFrame

它有一个多索引,每一行都有一个值
我想把它拆出来,但它有重复的键。现在我想把它转换成这样的格式:

其中index 1和index 2是多个索引中的一个,index 3和index 4是另一个多个索引,value 1 ~3是原始df中的值,如果该值不存在,则该值为nan。
我该怎么做?

e5njpo68

e5njpo681#

看看这个例子是否对你有帮助:

import pandas as pd

df = pd.DataFrame(data={'value': [1, 3, 5, 8, 5, 7]}, index=[[1, 2, 3, 4, 5, 6], ['A', 'B', 'A', 'C', 'C', 'A']])

df = df.reset_index(level=1)
df = df.pivot_table(values='value', index=df.index, columns='level_1')

原始数据:

结果:

dgenwo3n

dgenwo3n2#

作为替代方法,可以使用unstack()

import pandas as pd
df = pd.DataFrame(data={'value': [1, 3, 5, 8, 5, 7]}, index=[[1, 2, 3, 4, 5, 6], ['A', 'B', 'A', 'C', 'C', 'A']])
df.unstack(level=1)

原始 Dataframe :

value
1 A      1
2 B      3
3 A      5
4 C      8
5 C      5
6 A      7

输出:

value          
      A    B    C
1   1.0  NaN  NaN
2   NaN  3.0  NaN
3   5.0  NaN  NaN
4   NaN  NaN  8.0
5   NaN  NaN  5.0
6   7.0  NaN  NaN

相关问题