首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将行移到第一行(作为新列)

将行移到第一行(作为新列)
EN

Stack Overflow用户
提问于 2018-02-01 19:45:21
回答 2查看 1.3K关注 0票数 2

我对pandas有点陌生,我正在尝试执行一些表操作。我不太清楚我要找的行动是怎么回事。

我有一只熊猫的资料(实际的更大,但这些是我需要转换的科尔:

代码语言:javascript
复制
   pr10      pr50      pr90
25.6214   30.2753    36.634
1.94509   3.84798   6.55111
      0         0   0.00835
      0         0  0.007279

我想把它转换成:

代码语言:javascript
复制
pr10_0  pr50_0  pr90_0  pr10_1  pr50_1  pr90_1  pr10_2  pr50_2  pr90_2  pr10_3  pr50_3  pr90_3  pr10_4  pr50_4  pr90_4
25.6214 30.2753 36.634  1.94509 3.84798 6.55111 0   0   0.00835 0   0   0.007279    0.003505    0.007009    0.014764

我怎样才能做到这一点?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-02-01 20:14:21

您可以重新创建dataframe:

从当前的dataframe创建新列

代码语言:javascript
复制
cols = [name+'_{}'.format(num // len(df.columns)) for num,name in enumerate(df.columns.tolist()*len(df))]

通过对原始数据from中的所有值进行扁平化来创建一个新的数据from

代码语言:javascript
复制
pd.DataFrame(df.values.reshape(1,-1),columns=cols)
代码语言:javascript
复制
   pr10_0   pr50_0  pr90_0   pr10_1   pr50_1   pr90_1  pr10_2  pr50_2  \
0  25.6214  30.2753  36.634  1.94509  3.84798  6.55111     0.0     0.0   
    pr90_2  pr10_3  pr50_3    pr90_3  
0  0.00835     0.0     0.0  0.007279 
票数 0
EN

Stack Overflow用户

发布于 2018-02-01 20:21:42

使用stack并连接多个索引

代码语言:javascript
复制
df1=df.stack().to_frame(0).T

df1.columns=df1.columns.map('{0[1]}_{0[0]}'.format) 
df1
Out[445]: 
    pr10_0   pr50_0  pr90_0   pr10_1   pr50_1   pr90_1  pr10_2  pr50_2  \
0  25.6214  30.2753  36.634  1.94509  3.84798  6.55111     0.0     0.0   
    pr90_2  pr10_3  pr50_3    pr90_3  
0  0.00835     0.0     0.0  0.007279  
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48570585

复制
相关文章

相似问题

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