作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有这样一个数据框
id a b c
101 0 3 0
102 2 0 5
103 0 1 4
我想要这样的东西
id letter num
101 a 0
101 b 3
101 c 0
102 a 2
102 b 0
102 c 5
103 a 0
103 b 1
103 c 4
我想将列名传递给一行的值及其相应的 id 和 df 的结果。
我试图让它进入一个循环,根据它的 id 引入每个元素,但这很糟糕。有没有简单的方法可以做到这一点?
最佳答案
你可以 melt
然后排序:
>>> pd.melt(df, id_vars='id', value_vars=['a','b','c'],
var_name='letter', value_name='num').sort_values('id')
id letter num
0 101 a 0
3 101 b 3
6 101 c 0
1 102 a 2
4 102 b 0
7 102 c 5
2 103 a 0
5 103 b 1
8 103 c 4
如果你想重置索引,你总是可以在返回的 DataFrame 上使用 .reset_index(drop=True)
。
关于python - 将列传递给 python pandas 上的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36703477/
我是一名优秀的程序员,十分优秀!