初始化空的熊猫系列并有条件地添加到其中

Gau*_*sal 3 python dataframe pandas

我有一个X如下所示的pandas DataFrame 。

X = pd.DataFrame({
    'month_1': [1, 0, 0, 0, 0],
    'month_2': [0, 1, 0, 0, 0],
    'age': [1, 2, 3, 4, 5]
})
months = X['month_1'] + X['month_2']
age = X['age']
Run Code Online (Sandbox Code Playgroud)

我想创建一个方程,该方程X根据from中的术语keep是True还是False 加起来。下面的代码有效。

keep={'seasonality':True, 'age':True}

equation = months
if keep['age']:
    equation = equation + age

print(equation)

0    2
1    3
2    3
3    4
4    5
dtype: int64
Run Code Online (Sandbox Code Playgroud)

但是,如果我equation使用空序列进行初始化,然后添加基于的字词,则无法使其正常工作keep。当我尝试执行此操作时,会得到NaN值。我怎样才能做到这一点?

keep={'seasonality':True, 'age':True}

equation = pd.Series([])
if keep['seasonality']:
    equation = equation + months
if keep['age']:
    equation = equation + age

print(equation)

0   NaN
1   NaN
2   NaN
3   NaN
4   NaN
dtype: float64
Run Code Online (Sandbox Code Playgroud)

WeN*_*Ben 5

如果我理解正确,则可以使用add+fill_value=0

equation = pd.Series([])
if keep['seasonality']:
    equation = equation.add(months,fill_value=0)
if keep['age']:
    equation = equation.add(age,fill_value=0)
equation
Out[91]: 
0    2.0
1    3.0
2    3.0
3    4.0
4    5.0
dtype: float64
Run Code Online (Sandbox Code Playgroud)