Rod*_*o A 2 python python-3.x pandas
我有一个像这样的熊猫数据框:
df = pd.DataFrame({"Id": [1, 1, 1, 2, 2, 2, 2], "字母": ['A', 'B', 'C', 'A', 'D '、'B'、'C']})
如何有效地添加新列“合并”,以便将“letter”列中的所有值通过“Id”连接起来,因此最终的数据框将如下所示:
groupby Id然后你就可以列了transform
df['Merge'] = df.groupby('Id').transform(lambda x: '-'.join(x))
Run Code Online (Sandbox Code Playgroud)
print(df)
Id Letter Merge
0 1 A A-B-C
1 1 B A-B-C
2 1 C A-B-C
3 2 A A-D-B-C
4 2 D A-D-B-C
5 2 B A-D-B-C
6 2 C A-D-B-C
Run Code Online (Sandbox Code Playgroud)
感谢您sammywemmy指出lambda这里不需要,所以您可以使用更简单的形式
print(df)
Id Letter Merge
0 1 A A-B-C
1 1 B A-B-C
2 1 C A-B-C
3 2 A A-D-B-C
4 2 D A-D-B-C
5 2 B A-D-B-C
6 2 C A-D-B-C
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
285 次 |
| 最近记录: |