python - 将 pandas 系列的多索引转换为数据框列
问题描述
我有以下带有多索引的系列:
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
解决方案
使用Series.unstack
功能:
print (s.unstack())
b 3 4
a
1 100.0 NaN
2 200.0 300.0
推荐阅读
- javascript - React 组件库的汇总配置不适用于 SSR
- angular - 更改 registerForm 值(布尔值到数字)
- python - 为什么 numpy.multipy() 在这种具有非常大的多维数组的特定情况下如此昂贵?
- go - 在节奏中断的情况下节奏工作流
- c# - 该方法接受一个字符串,并且必须返回一个列表或树
- c# - 达到分数后如何增加健康
- xamarin.forms - 区域更改时如何获取view.map(Xamarin.Forms.Maps)中心的纬度和经度?
- spring - Liquibase loadData 变更集忽略上下文
- python - Dash python 实时更新表
- reactjs - 如何在react中删除reducer中数组中的对象?