将Pandas Series 的多重索引转换为数据帧列。

3

我有一个带有多级索引的Series:

import pandas as pd
index = pd.MultiIndex(labels = [[0,1,1],[2,2,3]], levels = [[1,2],[1,2,3,4]], names = ['a','b'])
s = pd.Series(index=index, data=[100,200,300])

a  b
1  3    100
2  3    200
   4    300

我希望将其转换为DataFrame,其中行是第一个索引的标签(例如a),列是第二个索引的标签(例如b),值是索引(a,b)处的值(如果没有则为None):
desired_df = pd.DataFrame(index=pd.Index(data=[1,2],name='a'), 
                          data = [[100,None],[200,300]],
                         columns = [3,4])


    3   4
a       
1   100 NaN
2   200 300.0
1个回答

2

使用Series.unstack函数:

print (s.unstack())
b      3      4
a              
1  100.0    NaN
2  200.0  300.0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接