首页 > 后端开发 > Python教程 > 如何使用分隔符有效地连接 Pandas GroupBy 组中的值?

如何使用分隔符有效地连接 Pandas GroupBy 组中的值?

Linda Hamilton
发布: 2024-12-04 22:28:14
原创
898 人浏览过

How Can I Efficiently Concatenate Values within Pandas GroupBy Groups Using a Delimiter?

带有分隔符连接器的 Pandas GroupBy

当使用多个值对 Pandas 中的数据进行分组时,可能会遇到需要使用具体的分隔符。但是,简单的 groupby 和 sum 操作可能会导致不希望的输出,而没有所需的分隔符。

请考虑以下代码:

import pandas as pd

df = pd.read_csv("Inputfile.txt", sep='\t')
group = df.groupby(['col'])['val'].sum()
# Output:
# A CatTiger
# B BallBat
登录后复制

这将生成一个具有连接值的单个字符串,而不需要所需的连字符分隔符。

要实现所需的输出,您可以结合使用 apply 函数join:

group = df.groupby(['col'])['val'].sum().apply(lambda x: '-'.join(x))
登录后复制

但是,由于每个值中包含不需要的字符,此解决方案可能仍然无法产生预期的输出。

替代解决方案

相反,请考虑使用带有 join 参数的 agg 函数:

df.groupby('col')['val'].agg('-'.join)
登录后复制

这将正确使用连字符分隔符连接组内的值,提供所需的输出:

col
A    Cat-Tiger
B     Ball-Bat
Name: val, dtype: object
登录后复制

更新解决方案

要处理 MultiIndex 或 Index 列,您可以重置索引并使用reset_index函数重命名它:

df1 = df.groupby('col')['val'].agg('-'.join).reset_index(name='new')
登录后复制

这会将索引转换为新列命名为“new”,提供了一种方便的方式来进一步处理分组数据。

以上是如何使用分隔符有效地连接 Pandas GroupBy 组中的值?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板