python - 如何将列名转换为 pandas 中的列值 - python

标签 python pandas

df=pd.DataFrame(index=['x','y'], data={'a':[1,2],'b':[3,4]})

如何将列名转换为列值?这是我想要的输出

   c1  c2
x  1   a
x  3   b
y  2   a
y  4   b

最佳答案

您可以使用:

print (df.T.unstack().reset_index(level=1, name='c1')
                     .rename(columns={'level_1':'c2'})[['c1','c2']])
   c1 c2
x   1  a
x   3  b
y   2  a
y   4  b

或者:

print (df.stack().reset_index(level=1, name='c1')
                 .rename(columns={'level_1':'c2'})[['c1','c2']])
   c1 c2
x   1  a
x   3  b
y   2  a
y   4  b

关于python - 如何将列名转换为 pandas 中的列值 - python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38241933/

相关文章:

python - 在 Windows 主机上使用 python (cv2.VideoCapture) 在 docker 容器中打开网络摄像头

python - 使用 Apache2 (mod_wsgi) 的 Django 问题,偶尔是 "unable to import from module",没有明显原因

python - 如何浏览股票代码列表来更新数据框

python - 如何在 matplotlib 图中显示数据

python - 找到两个排序数组的交集,在某些情况下需要少于 O(m+n) 次比较

python - Pyinstaller key 环 Windows 32 位

python - 如何在 Python 中使用 Pretty Table 打印出多个列表的数据?

python - 如何在逐行移动时使用 python 中的 apply 函数

python - 如何在 for 循环中附加 Pandas 数据框中的行?

python - 解析其列少于 4 个字符的行