繁体   English   中英

将具有重复值的行合并到相应列中的列表中

[英]Merge rows with duplicated values into list in corresponding column

如何将多行合并为一行,将重复的值合并为一行,并将唯一值列在多列中

输入数据框如下

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

这是我写的代码,但它没有解决问题。 帮我写个简单的代码得到最终的数据框

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)

输出

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]

国际大学联盟

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]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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