python - 从索引值创建列

标签 python python-3.x pandas

假设我的数据按照这个例子进行整形

idx = pd.MultiIndex.from_product([[1, 2, 3, 4, 5, 6], ['a', 'b', 'c']],
                                 names=['numbers', 'letters'])
col = ['Value']

df = pd.DataFrame(list(range(18)), idx, col)

print(df.unstack())

输出将是

            Value        
letters     a   b   c
numbers              
1           0   1   2
2           3   4   5
3           6   7   8
4           9  10  11
5          12  13  14
6          15  16  17

lettersnumbers 是索引,Value 是唯一的列

问题是如何将 Value 列替换为以索引 letters 的值命名的列?

所以我想得到这样的输出

numbers     a   b   c         
1           0   1   2
2           3   4   5
3           6   7   8
4           9  10  11
5          12  13  14
6          15  16  17

其中 abc 是列,数字是唯一的索引。

感谢您的帮助。

最佳答案

问题是由于您使用 unstackDataFrame 而不是 pd.Series

df.Value.unstack().rename_axis(None,1)
Out[151]: 
          a   b   c
numbers            
1         0   1   2
2         3   4   5
3         6   7   8
4         9  10  11
5        12  13  14
6        15  16  17

关于python - 从索引值创建列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55538599/

相关文章:

python - 将 timedelta 的时间转换/使用到日期时间

python - 如何使用 nlargest 为数据框中的前 N ​​个值分配/更改值?

python - Django ManyToMany疑问

python-3.x - 如何使用 graphviz 绘制 TreeMap ?

python - 具有不同长度的列表列表的元素明智连接

python - 如何阻止 tempfile.NamedTemporaryFile 在临时文件前缀末尾添加随机字符?

python - 如何删除包含字符串的 pandas 表的特定子字符串

python - 使用 Paramiko SSH 设置 virtualenv

python - 如何组织一个python项目

python - 如何在 Google Composer 上重启 Airflow 服务器?