在R中如何将Dataframe同类别多行的Text字段合并为单行
实现方案
使用Pandas的分组聚合功能即可实现该需求,核心逻辑是按Category字段分组后,将同一分组内的Text字段用空格拼接。
完整可运行代码示例如下:
import pandas as pd # 构造测试用的原始DataFrame df = pd.DataFrame({ "Category": ["First", "First", "Second", "Second"], "Text": ["I am Groot.", "We are Groot.", "The Dark Knight Rises.", "I am Batman."] }) # 核心处理代码 result_df = df.groupby("Category", as_index=False)["Text"].agg(" ".join)
输出result_df即可得到你需要的结果:
| Category | Text |
|---|---|
| First | I am Groot. We are Groot. |
| Second | The Dark Knight Rises. I am Batman. |
补充说明
- 如果需要自定义分隔符,比如用逗号、换行符拼接,把
agg参数里的' '换成对应的分隔符即可,比如用'\n'就会把每个文本单独放一行。 - 如果要合并的同时对文本去重,可以把聚合逻辑改成:
result_df = df.groupby("Category", as_index=False)["Text"].agg(lambda x: " ".join(dict.fromkeys(x).keys())) - 数据量较大时优先用
agg直接传入字符串函数名的写法,性能比自定义lambda函数更高。
内容的提问来源于stack exchange,提问作者Aeyxen
相关产品推荐
相关产品推荐

