如何使用Pandas按其他两列分组合并DataFrame的Fruit列值?
Pandas按指定列合并Fruit列值的解决方案
输入数据
| Name | Fruit | Number |
|---|---|---|
| Alice | Apple | 1 |
| Alice | Banana | 1 |
| Bob | Orange | 2 |
| Bob | Grape | 2 |
期望结果
| Name | Fruit | Number |
|---|---|---|
| Alice | Apple,Banana | 1 |
| Bob | Orange,Grape | 2 |
实现代码
通过groupby结合字符串拼接即可快速实现需求:
import pandas as pd # 替换为你的原始DataFrame df = pd.DataFrame({ 'Name': ['Alice', 'Alice', 'Bob', 'Bob'], 'Fruit': ['Apple', 'Banana', 'Orange', 'Grape'], 'Number': [1, 1, 2, 2] }) # 按Name和Number分组,合并Fruit列 result_df = df.groupby(['Name', 'Number'])['Fruit'].agg(','.join).reset_index() # 查看结果 print(result_df)
代码说明
groupby(['Name', 'Number']):以Name和Number的组合作为分组依据,将同组合的行归为一组agg(','.join):对每组的Fruit列值执行逗号分隔的字符串拼接reset_index():将分组后的索引转换为普通列,恢复DataFrame的常规结构
内容的提问来源于stack exchange,提问作者saikumarmacha
相关产品推荐
相关产品推荐

