繁体   English   中英

如何合并和计算两个数据框?

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

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