簡體   English   中英

當某些列相同時如何使用 Pandas Python 合並行

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM