Pandas DataFrame の値が replace() メソッドで置換されないのはなぜですか?
単純なメソッドで特定の文字列を NaN に置換しようとしているにもかかわらず、 DataFrame では、replace() メソッドは効果がないようです。例:
d = {'color' : pd.Series(['white', 'blue', 'orange']),
'second_color': pd.Series(['white', 'black', 'blue']),
'value' : pd.Series([1., 2., 3.])}
df = pd.DataFrame(d)
df.replace('white', np.nan)
'white' 値が NaN に置き換えられた、期待される出力は得られません。代わりに、DataFrame は変更されません。
解決策: regex=True で部分置換を有効にする
デフォルトでは、replace() メソッドは完全な文字列置換を実行します。部分置換を有効にするには、regex パラメータを True に設定する必要があります。この小さな調整により、DataFrame 内の任意の場所にある特定の文字列を置換できるようになります:
df.replace('white', np.nan, regex=True)
この変更により、 DataFrame は、「white」のすべてのインスタンスを NaN に正しく置き換えます。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3