带有分隔符连接器的 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中文网其他相关文章!