加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 如何转换数据框,以便列值是行值

发布时间:2020-12-20 12:14:24 所属栏目:Python 来源:网络整理
导读:我有以下数据框,如下所示: df = pd.DataFrame({'fruit': ['berries','berries','tropical','nuts'],'code': [100,100,200,300,400,500],'subcode': ['100A','100B','100C','200A','200B','300A','400A','500A']}) code fruit subcode 0 100 berries 100A 1
我有以下数据框,如下所示:

df = pd.DataFrame({'fruit': ['berries','berries','tropical','nuts'],'code': [100,100,200,300,400,500],'subcode': ['100A','100B','100C','200A','200B','300A','400A','500A']})


    code    fruit   subcode
  0 100     berries 100A
  1 100     berries 100B
  2 100     berries 100C
  3 200     tropica 200A
  4 200     tropical 200B
  5 300     tropical 300A
  6 400     berries 400A
  7 500     nuts    500A

我想将数据帧转换为这种格式:

code    fruit   subcode1 subcode1 subcode1
  0 100     berries 100A      100B   100C
  3 200     tropica 200A      200B
  5 300     tropical 300A
  6 400     berries 400A
  7 500     nuts    500A

不幸的是,我不知道如何继续.我已经咨询了像Unmelt Pandas DataFrame这样的帖子,并且有堆栈和unstack的组合.我怀疑也涉及一些连接.非常感谢任何建议,帮助我指出正确的方向!

解决方法

您可以使用groupby,获取值并将它们转换为系列.

df.groupby(['code','fruit'])['subcode'].apply(
         lambda x: x.values
      ).apply(pd.Series)
       .add_prefix('subcode_')

                subcode_0 subcode_1 subcode_2
code fruit                                 
100  berries       100A      100B      100C
200  tropical      200A      200B       NaN
300  tropical      300A       NaN       NaN
400  berries       400A       NaN       NaN
500  nuts          500A       NaN       NaN

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读