简体   繁体   中英

Merge rows with duplicated values into list in corresponding column

How do I merge multiple rows into one row , where duplicated values into one row and unique values list inside multiple columns

The input dataframe is as follows

Name  num1    num2   key  filter1  filter2
TOM    1.1     2.1    a      T      F
TOM    1.1     2.1    b      T      F
TOM    1.1     2.1    c      T      F
TOM    1.1     2.1    d      T      F
SAM    1.2     2.1    a      F      T
SAM    1.2     2.1    b      F      T

This is the code I have written, But it dont solve the issue. Help me write a simple code to get the final dataframe

df_temp = df.groupby(['Name','num1','num2'])['key'].apply(list).reset_index()
df_temp_2 = df.groupby(['Name','num1','num2'])['filter1'].apply(list).reset_index()
df_temp_3 = df.groupby(['Name','num1','num2'])['filter2'].apply(list).reset_index()

df1 = df_temp.merge(df_temp2)
final_df = df1.merge(df_temp3)

Output

Name  num1  num2  key           filter1         filter2
TOM    1.1   2.1  [a, b, c, d]  [T, T, T, T]    [F, F, F, F]
SAM    1.2   2.1  [a, b]        [F, F]          [T, T]

IIUC

df = df.groupby(['Name', 'num1', 'num2'], as_index=False, sort=False).agg(list)
  Name  num1  num2           key       filter1       filter2
0  TOM   1.1   2.1  [a, b, c, d]  [T, T, T, T]  [F, F, F, F]
1  SAM   1.2   2.1        [a, b]        [F, F]        [T, T]

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM