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

本文是小编为大家收集整理的关于Pandas DataFrame.add()--忽略丢失的列的处理方法,想解了Pandas DataFrame.add()--忽略丢失的列的问题怎么解决?Pandas DataFrame.add()--忽略丢失的列问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我有以下两个DataFrame:

>>> 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 中保持"高于"和"低于"值的运行计数,如下所示:

>>> 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 中没有额外的列,这将有效.但是,当我添加一个额外的列时:

>>> 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

我希望忽略这个额外的列,因为它在两个 DataFrame 中都不存在.所需的输出只是:

>>> 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

本文地址:https://www.itbaoku.cn/post/1727971.html