📅  最后修改于: 2023-12-03 14:49:44.466000             🧑  作者: Mango
有时候我们需要将多行数据中的字符串连接起来,通常情况下我们会使用循环或者 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 函数,我们可以很轻松地将多行数据中的字符串连接起来,并大幅提升代码的效率。