找出两个数据帧之间的差异

时间:2020-04-01 16:47:53

标签: python pandas numpy dataframe

我有两个数据帧,例如df1,df2,每个数据帧都有两列['Name', 'Marks']

我想找到两个if对应的名称值之间的区别。

例如:

df = pd.DataFrame([["Shivi",70],["Alex",40]],columns=['Names', 'Value'])
df2 = pd.DataFrame([["Shivi",40],["Andrew",40]],columns=['Names', 'Value'])

对于df1-df2我想要

pd.DataFrame([["Shivi",30],["Alex",40],["Andrew",40]],columns=['Names', 'Value'])

1 个答案:

答案 0 :(得分:2)

您可以使用:

diff = df1.set_index("Name").subtract(df2.set_index("Name"), fill_value=0)

因此,完整的程序应如下所示:

import pandas as pd

data1 = {'Name': ["Ashley", "Tom"], 'Marks': [40, 50]}
data2 = {'Name': ["Ashley", "Stan"], 'Marks': [80, 90]}

df1 = pd.DataFrame(data1)
df2 = pd.DataFrame(data2)

diff = df1.set_index("Name").subtract(df2.set_index("Name"), fill_value=0)

print(diff)

输出:

        Marks
Name
Ashley  -40.0
Stan    -90.0
Tom      50.0