我有一个DataFrame
它有一个多索引,每一行都有一个值我想把它拆出来,但它有重复的键。现在我想把它转换成这样的格式:
其中index 1和index 2是多个索引中的一个,index 3和index 4是另一个多个索引,value 1 ~3是原始df中的值,如果该值不存在,则该值为nan。我该怎么做?
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')
原始数据:
结果:
dgenwo3n2#
作为替代方法,可以使用unstack()
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
2条答案
按热度按时间e5njpo681#
看看这个例子是否对你有帮助:
原始数据:
结果:
dgenwo3n2#
作为替代方法,可以使用
unstack()
原始 Dataframe :
输出: