前提・実現したいこと
place len time gap wether going rank cnt
1 大井☆ 1600 1:47.4 4.6 雨 不良 13 13
2 川崎☆ 1500 1:39.9 4.6 雨 不良 12 13
3 大井☆ 1400 1:31.7 3.0 曇 重 16 16
4 大井☆ 1400 1:30.9 2.0 晴 良 8 9
5 函館 1200/芝 1:11.0 1.0 曇 稍重 14 16
6 函館 1200/芝 1:09.4 0.3 晴 良 7 16
7 函館 1200/芝 1:09.5 0.9 曇 良 13 16
8 東京 1400/芝 1:22.0 0.7 小雨 良 8 18
9 新潟 1400/芝 1:22.2 1.2 晴 良 12 16
10 小倉 1200/芝 1:09.7 1.8 曇 良 16 18
中身が上記のようなDataFrameで、['len']に"/芝"が含まれている行の要素をすべてNaNにしたいです。この場合だと5から10の行の要素すべてをNaNにしたいです。
試したこと
python
1df.replace(df.query('len.str.contains("/芝")'),np.nan)
上記のコードでは対象の行に含まれている要素と同じ要素が、対象外の行にも飛び火してNaNになってしまったため、うまくいきませんでした。
place len time gap wether going rank cnt
1 1.0 1600 1:47.4 4.6 雨 不良 NaN 13
2 NaN 1500 1:39.9 4.6 雨 不良 NaN 13
3 1.0 1400 1:31.7 3.0 NaN 重 NaN NaN
4 1.0 1400 1:30.9 2.0 NaN NaN NaN 9
5 NaN NaN NaN NaN NaN NaN NaN NaN
6 NaN NaN NaN NaN NaN NaN NaN NaN
7 NaN NaN NaN NaN NaN NaN NaN NaN
8 NaN NaN NaN NaN NaN NaN NaN NaN
9 NaN NaN NaN NaN NaN NaN NaN NaN
10 NaN NaN NaN NaN NaN NaN NaN NaN
python
1df.query('len.str.contains("芝")').replace(df.query('len.str.contains("/芝")'),np.nan,inplace=True)
上記のコードでは
SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrameが出てしまい、うまくいきませんでした。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/10/03 04:35
2018/10/03 04:36
2018/10/03 04:39