在 Pandas 中使用分隔符连接分组值
使用 groupby 函数对具有多个值的数据进行分组时,经常会遇到此问题不使用分隔符连接这些值。要解决此问题,您可以利用 agg 方法。
考虑以下 DataFrame:
col | val -----|----- A | Cat A | Tiger B | Ball B | Bat
要根据 col 列对这些行进行分组并连接 val 列中的值,请使用以下代码:
import pandas as pd df = pd.DataFrame({'col': ['A', 'A', 'B', 'B'], 'val': ['Cat', 'Tiger', 'Ball', 'Bat']}) grouped = df.groupby('col')['val'].agg('-'.join)
这种方法应该会产生所需的结果result:
col | val -----|----- A | Cat-Tiger B | Ball-Bat
但是,如果使用 apply 方法作为替代方法,则可能会导致意外结果,连字符值会多次出现,如下所示:
df.groupby('col')['val'].apply(lambda x: '-'.join(x)) col | val -----|----- A | C-a-t-T-i-g-e-r B | B-a-l-l-B-a-t
为了避免这个问题,请使用 agg 方法,如上面的示例所示。
此外,将分组索引或 MultiIndex 转换为常规索引列,您可以使用reset_index方法:
df1 = grouped.reset_index(name='new')
以上是如何使用分隔符有效地连接 Pandas 中的分组值?的详细内容。更多信息请关注PHP中文网其他相关文章!