Difference/subtraction 两个关于数值变量的 DataFrame

Difference/subtraction of two DataFrames on numerical variables

我有一个基本问题,要在数字列上区分两个数据帧。其他列上的行相同。

df1 :

     Name Sex    CA   PV  Time
0    John   M  5723  225    85
1  Andrew   M  6678  193    41
2  Gloria   F  8781  521    70
3    Paul   M  9910  502    31

df2 :

     Name Sex    CA   PV  Time
0    John   M  2082   35    60
1  Andrew   M  4567   60    18
2  Gloria   F  2676  486    52
3    Paul   M  9814  360    11

所以,我想获得以下DataFrame,它只是CA、PV和时间的区别 df3 :

     Name Sex    CA   PV  Time
0    John   M  3641  190    25
1  Andrew   M  2111  133    23
2  Gloria   F  6105   35    18
3    Paul   M    96  142    20

如果您对此有任何想法? 谢谢

给你:

>>> df = pd.DataFrame({'angles': [0, 3, 4],
...                    'degrees': [360, 180, 360]},
...                   index=['circle', 'triangle', 'rectangle'])
>>> df
           angles  degrees
circle          0      360
triangle        3      180
rectangle       4      360

>>> df2 = pd.DataFrame({'angles': [0, 1, 2],
...                    'degrees': [160, 90, 60]},
...                   index=['circle', 'triangle', 'rectangle'])
>>> df2
           angles  degrees
circle          0      160
triangle        1       90
rectangle       2       60

>>> df.sub(df2)
           angles  degrees
circle          0      200
triangle        2       90
rectangle       2      300

您想使用 pandas.DataFrame.subtract 方法:

df3["CV", "PV", "Time"] = df1["CV", "PV", "Time"].subtract(df2["CV", "PV", "Time"])
df1.update(df1.select_dtypes('number') - df2.select_dtypes('number'),overwrite=True)