Сложение Series без NaN
Пример данных:
s1 = pd.Series(data = [1,1,1,1,1], index = ['idx1', 'idx2', 'idx3', 'idx4', 'idx5'])
s2 = pd.Series(data = [2,2,2], index = ['idx2', 'idx4', 'idx5'])
При сложении
s1+s2
Получается:
Это понятно, так как любой тип + NaN = NaN, но мне нужно, чтобы в отсутствующих индексах при сложении были значения из слагаемого, где эти значения определены, то есть, нужно
Сейчас я делаю так: перевожу в DataFrame, добавляю недостающие колонки, fillna(0) и складываю -- это очень плохо, подскажите, пожалуйста, как правильно, спасибо! То же самое и с датафреймами интересует, если в одном из df нет некоторых колонок, тоже в итоге получится NaN.
Ответы (3 шт):
Автор решения: CrazyElf
→ Ссылка
Для Series:
s1.add(s2, fill_value=0)
idx1 1.0
idx2 3.0
idx3 1.0
idx4 3.0
idx5 3.0
dtype: float64
Для DataFrame:
df1 = pd.DataFrame({'x': [1,2,3,4]}, index=[1,2,4,5] )
df2 = pd.DataFrame({'x': [11,12,13,14]}, index=[1,2,3,5])
df1.add(df2, fill_value=0)
x
1 12.0
2 14.0
3 13.0
4 3.0
5 18.0

