添加Pandas系列而不进行排序



我想在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

这种方法对我的索引进行排序,但我不想

我能做什么或用什么方法?

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

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

输出:

Ohio       70000.0
Texas     142000.0
Oregon     32000.0
Utah        5000.0
dtype: float64

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

c = a.values + b.values

这返回一个numpy数组:

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

看起来你可能也想为奶奶填写0——在这种情况下,试试这个:

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

最新更新