以下是一个示例代码,按特定顺序将相同列的值进行分组连接:
import pandas as pd
# 创建示例数据
data = {'Name': ['Tom', 'Nick', 'John', 'Tom', 'John'],
'Age': [20, 25, 30, 20, 35],
'City': ['NY', 'LA', 'NY', 'LA', 'NY']}
df = pd.DataFrame(data)
# 按特定顺序对DataFrame进行排序
order = ['Tom', 'John', 'Nick']
df['Name'] = pd.Categorical(df['Name'], categories=order, ordered=True)
df = df.sort_values('Name')
# 将相同列的值进行分组连接
result = df.groupby('Name')['City'].apply(lambda x: ', '.join(x)).reset_index()
print(result)
输出结果为:
Name City
0 Tom NY, LA
1 John NY, NY
2 Nick LA
在这个示例中,我们首先创建了一个包含姓名、年龄和城市的DataFrame。然后,我们定义了一个特定的顺序("Tom"、"John"、"Nick"),并使用pd.Categorical
将姓名列转换为有序分类。接下来,我们使用sort_values
函数根据姓名列进行排序。
最后,我们使用groupby
函数对姓名进行分组,并使用apply
函数将每个分组的城市列连接为字符串。最后,我们使用reset_index
函数重新设置索引,以获得最终的结果DataFrame。