ynt*_*tnm 1 python group-by dataframe pandas pandas-groupby
我试图找出在连接值时是否可以删除数据框中的重复项
例子:
df
key v1 v2
0 1 n/a a
1 2 n/a b
2 3 n/a c
3 2 n/a d
4 3 n/a e
Run Code Online (Sandbox Code Playgroud)
输出应该是这样的:
df_out
key v1 v2
0 1 n/a a
1 2 n/a b,d
2 3 n/a c,e
Run Code Online (Sandbox Code Playgroud)
我尝试使用 df.drop_duplicates() 和一些循环来保存 v2 列值,但什么也没有。我试图通过使用 Pandas 来做到干净整洁,没有循环。
有人知道熊猫可以做到这一点吗?
假设您有两列,这应该很容易。使用groupby+ agg。v1应按 聚合first,并v2应按 聚合','.join。
df
key v1 v2
0 1 NaN a
1 2 NaN b
2 3 NaN c
3 2 NaN d
4 3 NaN e
Run Code Online (Sandbox Code Playgroud)
(df.groupby('key')
.agg({'v1' : 'first', 'v2' : ','.join})
.reset_index()
.reindex(columns=df.columns))
key v1 v2
0 1 NaN a
1 2 NaN b,d
2 3 NaN c,e
Run Code Online (Sandbox Code Playgroud)
如果您有多个此类列需要相同的聚合,请构建一个名为 的聚合字典f并将其传递给agg.
| 归档时间: |
|
| 查看次数: |
6413 次 |
| 最近记录: |