[英]How to merge and compute two data frames?
寻求合并以下两个数据框的帮助。
df1:
key mean stddev
--- ----- -------
key1 30 3
key2 40 4
key3 50 5
df2:
key mean stddev
--- ----- -------
key2 70 7
key3 80 8
key4 90 9
需要合并上述两个数据框以产生三种不同的结果:
1. Rows that are in df1 but not in df2:
key mean stddev
--- ----- -------
key1 30 3
2. Rows that are in both df1 and df2 (please see the new columns delta_mean(difference of mean), delta_stddev (difference of stddev)
key mean_x stddev mean_y stddev_y delta_mean delta_stddev
--- ----- ------- ------ -------- --------- -----------
key2 40 4 70 7 30 3
key3 50 5 80 8 30 3
此外,我想按 delta_mean 对其进行排序。
3. Rows that are in df2 but but not not in df1
key mean stddev
--- ----- -------
key4 90 9
在第一个和第三个所需的 output 中,您可以简单地从当前 dataframe 中过滤掉另一个中不存在的密钥。 您只需要在第二个选项中进行合并:
1. df1 中但 df2 中没有的行:
df1[~df1.key.isin(df2.key)]
key mean stddev
0 key1 30 3
2. df1 和 df2 中的行
df1.merge(df2, on='key')
key mean_x stddev_x mean_y stddev_y
0 key2 40 4 70 7
1 key3 50 5 80 8
3. 在 df2 但不在 df1 中的行
df2[~df2.key.isin(df1.key)]
key mean stddev
2 key4 90 9
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.