【问题标题】:add in Pandas Series without sorting无需排序即可添加 Pandas 系列
【发布时间】:2022-01-24 14:10:37
【问题描述】:

我想在 Pandas 中添加两个系列,我使用 add() 函数来执行此操作:

import pandas as pd
import numpy as np
a = pd.Series([35000,71000,16000,5000],index=['Ohio','Texas','Oregon','Utah'])
b = pd.Series([np.nan,71000,16000,35000],index=['California', 'Texas', 'Oregon', 'Ohio'])
print(a.add(b, fill_value=0))

打印出来:

California         NaN
Ohio           70000.0
Oregon         32000.0
Texas         142000.0
Utah            5000.0
dtype: float64

此方法对我的索引进行排序但我不想

我可以做什么或可以使用什么方法?

【问题讨论】:

  • 预期的输出是什么?

标签: python pandas sorting add series


【解决方案1】:

您的预期输出不清楚,但假设您想保留a 的确切索引,您可以这样做:

a.add(b.reindex_like(a), fill_value=0)

输出:

Ohio       70000.0
Texas     142000.0
Oregon     32000.0
Utah        5000.0
dtype: float64

【讨论】:

    【解决方案2】:

    如果索引无关紧要,您可以简单地添加系列的values,例如

    c = a.values + b.values
    

    这会返回一个 numpy 数组:

    array([    nan, 142000.,  32000.,  40000.])
    

    您似乎还想为 nans 填写 0——在这种情况下,试试这个:

    c = a.fillna(0).values + b.fillna(0).values
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-21
      • 2017-09-29
      • 2016-12-20
      • 2018-08-04
      • 2014-06-17
      • 1970-01-01
      • 1970-01-01
      • 2016-05-31
      相关资源
      最近更新 更多