【问题标题】:if few columns are the same and then append the row value together in pandas如果几列相同,然后将行值附加到 pandas 中
【发布时间】:2023-02-07 11:02:13
【问题描述】:
以下是详情
这是数据框
Name| Filename| delimetier| good delimeter| bad delimeter
A 123 48 a A
A 123 48 A
B 123 48 b C
C 123 49 c B
A 123 48 d D
A 123 48 c E
B 123 48 d F
我想要的是
Name| Filename| delimetier| good delimeter| bad delimeter
A 123 48 a, c, d A, D, E
B 123 48 b, d C, F
C 123 49 c B
即使有空值和重复项,也忽略它们。我试过使用 groupby() 来解决它,但失败了。
【问题讨论】:
标签:
python
pandas
pivot
pivot-table
【解决方案1】:
您可以使用 groupby.apply 来实现此结果。
使用此数据:
>>> df
Name Filename delimeter good delimeter
0 A 123 48 a
1 B 123 48 b
2 C 123 49 c
3 A 123 48 d
4 A 123 48 c
5 B 123 48 d
解决方案
out = (
df.groupby(['Name', 'Filename', 'delimeter'], as_index=False)
['good delimeter'].apply(', '.join)
)
print(out)
Name Filename delimeter good delimeter
0 A 123 48 a, d, c
1 B 123 48 b, d
2 C 123 49 c