添加 Pandas 系列而不排序
add in Pandas Series without sorting
我想在 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
这个 returns 一个 numpy 数组:
array([ nan, 142000., 32000., 40000.])
您似乎还想为 nans 填写 0 -- 在这种情况下,试试这个:
c = a.fillna(0).values + b.fillna(0).values
我想在 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
这个 returns 一个 numpy 数组:
array([ nan, 142000., 32000., 40000.])
您似乎还想为 nans 填写 0 -- 在这种情况下,试试这个:
c = a.fillna(0).values + b.fillna(0).values