Pandas DataFrame.add()-忽略缺少的列 [英] Pandas DataFrame.add() -- ignore missing columns

查看:52
本文介绍了Pandas DataFrame.add()-忽略缺少的列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下两个DataFrame:

I have the following two DataFrames:

>>> history
              above below
asn   country
12345 US          5     4
      MX          6     3
54321 MX          4     5
>>> current
              above below
asn   country
12345 MX          1     0
54321 MX          0     1
      US          1     0

我像这样在history DataFrame中保持上方"和下方"值的连续计数:

I keep a running count of the "above" and "below" values in the history DataFrame like so:

>>> history = history.add(current, fill_value=0)
>>> history
               above  below
asn   country              
12345 MX         7.0    3.0
      US         5.0    4.0
54321 MX         4.0    6.0
      US         1.0    0.0

只要current DataFrame中没有多余的列,此方法就起作用.但是,当我添加额外的列时:

This works so long as there are no extra columns in the current DataFrame. However when I add an extra column:

>>> current
              above below cruft
asn   country
12345 MX          1     0   999
54321 MX          0     1   999
      US          1     0   999

我得到以下信息:

>>> history = history.add(current, fill_value=0)
>>> history
               above  below cruft
asn   country              
12345 MX         7.0    3.0 999.0
      US         5.0    4.0   NaN
54321 MX         4.0    6.0 999.0
      US         1.0    0.0 999.0

我希望忽略此多余的列,因为这两个数据帧中都不存在.所需的输出为:

I want this extra column to be ignored, since it's not present in both DataFrames. The desired output is just:

>>> history
               above  below
asn   country              
12345 MX         7.0    3.0
      US         5.0    4.0
54321 MX         4.0    6.0
      US         1.0    0.0

推荐答案

In [27]: history.add(current, fill_value=0)[history.columns]
Out[27]:
               above  below
asn   country
12345 MX         7.0    3.0
      US         5.0    4.0
54321 MX         4.0    6.0
      US         1.0    0.0

这篇关于Pandas DataFrame.add()-忽略缺少的列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆