Ros*_*dra 6 python dataframe pandas
我有这样的数据框
id a b c
101 0 3 0
102 2 0 5
103 0 1 4
Run Code Online (Sandbox Code Playgroud)
我想要这样的东西
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
Run Code Online (Sandbox Code Playgroud)
我想将列名称传递给行的值及其对应的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
Run Code Online (Sandbox Code Playgroud)
如果要重置索引,可以始终.reset_index(drop=True)在返回的DataFrame上使用.
| 归档时间: |
|
| 查看次数: |
315 次 |
| 最近记录: |