我想将一个数据帧分组到一个键上,在本例中是clientid。并将该分组中的所有列连接到每个键的一个长行中。在
例如
clientid, name, age, company
1, tom, 31, awesome
1, jen, 26, argos
2, bob, 18, hmv
3, ted, 12, mcdonalds
4, sarah,30, MnS
4, mike, 52, Mns
4, luke, 75, argos
想要的结果
^{pr2}$提出了一个类似的问题和解决办法
df_info = df1.groupby('clientid')['info'].unique().apply(pd.Series).reset_index()
info_len = len([col for col in df_info if str(col).isdigit()])
df_info.columns = ['clientid'] + ['info'] * info_len
df_info
但我找不到如何将此应用于多个列
这就带来了一个健康警告,因为离开了允许groupby的结构、出色的性能、强大而干净的语法(所以从某种意义上说,这是一个很难做到的功能!)。。。只是不太讨人喜欢。在
所以我强烈建议不要这样做,因为几乎可以肯定有更好的方法来做你正在做的任何事情。。。在
我想你需要按clientid分组然后提取这些字符串。。。在
我可能会考虑在每组中使用
^{pr2}$to_csv
:另一种方法是:
你得稍微修改一下才能找到正确的标题:
因此,您可以执行以下操作:
我尝试了几种方法,并提出了一个修改版本的安迪,我发现效果很好。在
新建列标题
^{pr2}$添加神秘栏以匹配在中创建的空白pd系列(x.拆分(',')
为索引指定一种类型以帮助将来的合并
如果行终止符用于列的任何数据中,则可以更改它。在
相关问题 更多 >
编程相关推荐