python - 如果 pandas 数据框中另一列的值相同,我如何减去 2 列

标签 python pandas python-2.7 join

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

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/

相关文章:

python - 在由现有列的值组成的数据框中创建一个新列

python - 使用 groupby 对 pandas 中的分类变量删除未使用的类别

python - SQLAlachmey : ORM filter to match all items in a list, 没有

python - Pytractor 不导入 Firefox

python - 将复杂列表转换为数据框表,其中第一个值作为第二列标题

python - 在 pandas 数据框列(又名 pd.series)中查找数组元素位置

python比较,出问题了

python - 如何使用python markdown处理读入的文件?

Python "push server"TCP 客户端

python如何找到两个文本文件之间的所有单词匹配