📜  使用 Pandas groupby 连接多行中的字符串(1)

📅  最后修改于: 2023-12-03 14:49:44.466000             🧑  作者: Mango

使用 Pandas groupby 连接多行中的字符串

有时候我们需要将多行数据中的字符串连接起来,通常情况下我们会使用循环或者 apply 函数,但是这些方法效率较低。在 pandas 中,可以使用 groupby 函数来高效地连接字符串。

假设我们有以下的数据:

import pandas as pd

data = {'name': ['Alice', 'Alice', 'Bob', 'Charlie', 'Charlie'],
        'age': [25, 30, 35, 25, 30],
        'country': ['USA', 'Canada', 'USA', 'USA', 'Canada']}

df = pd.DataFrame(data)

我们想要按照 name 和 country 进行分组,然后将每个分组中的 age 连接起来。这时候,我们可以这样做:

result = df.groupby(['name', 'country'])['age'].apply(lambda x: ','.join(x.astype(str))).reset_index()

其中,groupby 函数的参数为需要进行分组的列名,然后使用 apply 函数来对每组数据进行操作。在本例中,我们对每个分组的 age 列进行字符串拼接,并使用 reset_index 函数来重置索引。

最终的结果如下所示:

      name country    age
0    Alice  Canada     30
1    Alice     USA  25,30
2      Bob     USA     35
3  Charlie  Canada     30
4  Charlie     USA     25

其中,Alice 在美国的 age 为 25,30。

通过使用 groupby 函数,我们可以很轻松地将多行数据中的字符串连接起来,并大幅提升代码的效率。