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

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

Linda Hamilton
Linda Hamilton原创
2024-12-04 22:28:14910浏览

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn