Seriesは、DataFrameの各列に対してSeriesを合計したいと考えています.nansumと同じ動作をしています。両方が欠けている場合はNaN/0を返します。パンダ:DataFrameの各列へのnansumシリーズ
テストケース:
import numpy as np
import pandas as pd
df = pd.DataFrame([[np.nan, 1], [2, 2], [3, 4]])
ts = pd.Series([1, np.nan, 4])
試み1(一方が欠落している場合はNaNを与える):
df.add(ts, axis=0)
Out[115]:
0 1
0 NaN 2.0
1 NaN NaN
2 7.0 8.0
試み2(エラーをスロー):
df.add(ts, axis=0, fill_value=0)
NotImplementedError: fill_value 0 not supported.
期待出力:
0 1
0 1 2
1 2 2
2 7 8
注:NaNの場所を保存して、NaNを0にして合計を行い、両方がNaNの場合はNaNに設定しますが、より良い解決策を探しています。
なぜ 'fillna'? 'df.fillna(0).add(ts.fillna(0)、axis = 0)' –
pandas 0.21では、すべてのNaNの合計がNaNを返します。だから私があなたの提案をするなら、データフレームとシリーズの両方がNaNである場合にマスクを適用する必要があります。 私は狂ったことはありませんが、私はパンダが上記の操作をサポートしていないことに驚いています。より良い解決策があるかどうかを知りたいと思います。 – FLab
はい、機能は動作していますが、まだ実装されていません。タイトに座って、次のリリースで外に出るはずです。それまでは、これは回避策です^^^^ –