我有两个数据帧,df1和df2都有列“A”、“count”。我想根据A列加入这些行,然后如果列相同,则从这些行中减去count。例如:

df1
A    count
s1   10
s2    5
s3    3
s4    7

df2
A    count
s1    2
s4    4

我的最终输出应该是
combined
A    count1   count2   change
s1    10        2       8 // count1-count2
s2    5         none    none
s3    3         none    none
s4    7         4        3

最佳答案

可以执行外部合并,然后执行计算:

res = pd.merge(df1.rename(columns={'count': 'count1'}),
               df2.rename(columns={'count': 'count2'}), how='outer')\
        .eval('change = count1 - count2')

print(res)

    A  count1  count2  change
0  s1      10     2.0     8.0
1  s2       5     NaN     NaN
2  s3       3     NaN     NaN
3  s4       7     4.0     3.0

关于python - 如果另一列的值在pandas数据框中相同,如何减去2列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53860485/

10-11 16:52