[英]How to merge rows when data when some columns are the same using Pandas Python
現在我有一個 dataframe。我想用 commons 分隔不同的值並刪除所有空值。
import pandas as pd
import numpy as np
s1 = pd.Series(['a', np.nan,'i'])
s2 = pd.Series(['a','f',np.nan])
s3 = pd.Series(['a', 'e','i'])
s4 = pd.Series(['c', 'g','j'])
df = pd.DataFrame([list(s1), list(s2), list(s3),list(s4)], columns = ['A', 'B','C'])
df
A B C
0 a d NaN
1 a f NaN
2 a e i
3 c g j
期望的結果:
A B C
0 a d,e,f i
1 c g j
試試
out = df.groupby('A',as_index=False).agg({'B':','.join,'C':'first'})
A B C
0 a d,f,e i
1 c g j
更新
out = df.groupby('A',as_index=False).agg({'B':lambda x : ','.join(x.dropna().drop_duplicates()),'C':lambda x : ','.join(x.dropna().drop_duplicates())})
out
A B C
0 a d,f,e i
1 c g j
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.