当前位置:  开发笔记 > 编程语言 > 正文

在pandas中,如何展平一组行

如何解决《在pandas中,如何展平一组行》经验,为你挑选了1个好方法。

我是python中的熊猫新手,我很感激任何帮助.我一直在谷歌搜索和谷歌搜索,但似乎无法破解它.

例如,我有一个包含6列的csv文件.我试图将行组合在一起,以便每行的所有数据被展平为一行.

所以如果我的数据看起来像这样:

event event_date event_time name height age 1 2015-05-06 14:00 J Bloggs 185 24 1 2015-05-06 14:00 P Smith 176 55 1 2015-05-06 14:00 T Kirk 193 22 2 2015-05-14 17:00 B Gates 178 72 2 2015-05-14 17:00 J Mayer 184 42

而我最终想要把它弄平如此

event  event_date   event_time    name_1     height_1   age_1   name_2     height_2   age_2    name_3    height_3   age_3                                          
1      2015-05-06   14:00         J Bloggs   185        24      P Smith    176        55       T Kirk    193        22                                         
2      2015-05-14   17:00         B Gates    178        72      J Mayer    184        42
                                                                                                                                                                           .           

因此,正如您在上面看到的那样,前3行中的第一个事件已被展平为一个,并且扩展了列以容纳行数据.第二个事件已经展平,列中填充了数据.

任何帮助都会被贬低.



1> Nickil Mavel..:

脚步:

1)计算Groupby对象的累积计数.添加1,以便根据需要格式化标题DF.

2)设置相同的分组的列作为索引轴线与所计算的沿cumcounts,然后unstack它.此外,根据最低级别对标题进行排序.

3)重命名多索引列并相应地展平以获得单个标题.


cc = df.groupby(['event','event_date','event_time']).cumcount() + 1
df = df.set_index(['event','event_date','event_time', cc]).unstack().sort_index(1, level=1)
df.columns = ['_'.join(map(str,i)) for i in df.columns]
df.reset_index()

在此输入图像描述

推荐阅读
罗文彬2502852027
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有