首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将多个字段转换为SIngle字段

将多个字段转换为SIngle字段
EN

Stack Overflow用户
提问于 2019-01-06 03:15:03
回答 2查看 36关注 0票数 1

我要这个熊猫DataFrame

代码语言:javascript
运行
复制
a     b        c            d           e           f            g
1   2022       11          12          13          14           15
2   2023       17          22          23          24           25

我想把这个转换成

代码语言:javascript
运行
复制
a     b        c 
1   2022       11
2   2022       12
3   2022       13
4   2022       14
5   2022       15
6   2023       17
7   2023       22
8   2023       23
9   2023       24
10  2023       25

最优化的实现方式是什么?

EN

回答 2

Stack Overflow用户

发布于 2019-01-06 03:18:04

我认为这应该是melt问题

代码语言:javascript
运行
复制
newdf=df.melt(['a','b']).sort_values('b')
newdf
   a     b variable  value
0  1  2022        c     11
2  1  2022        d     12
4  1  2022        e     13
6  1  2022        f     14
8  1  2022        g     15
1  2  2023        c     17
3  2  2023        d     22
5  2  2023        e     23
7  2  2023        f     24
9  2  2023        g     25

如果您需要0-n中的here

代码语言:javascript
运行
复制
newdf.a=newdf.index+1
票数 4
EN

Stack Overflow用户

发布于 2019-01-06 03:18:50

代码语言:javascript
运行
复制
df.drop('a', axis=1)\  # No need for the original 'a`
  .set_index('b')\ # Make 'b' the index
  .stack()\ # Convert from "broad" to "tall"
  .reset_index()\ # Convert the index back to a regular column
  .drop('level_1', axis=1)\ # Remove the residual original column names
  .rename({0: 'c'}, axis=1) # Rename the new column to 'c'
#      b   c
#0  2022  11
#1  2022  12
#2  2022  13
#3  2022  14
#4  2022  15
#5  2023  17
#6  2023  22
#7  2023  23
#8  2023  24
#9  2023  25
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54055357

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档