データフレームがあります。
import pandas as pd
import numpy as np
x = {'Value': ['Test', 'XXX123', 'XXX456', 'Test']}
df = pd.DataFrame(x)
_
Lambdaを使用してxxxから始まる値をnp.nanに置き換えたい。
私は置き換え、適用、地図で多くのことを試しました、そして私ができる最善のことがfalse、true、true、falseです。
以下はうまくいきますが、私はそれをするより良い方法を知りたいと思います、そして私は適用、交換、そしてラムダはおそらくそれをするより良い方法だと思います。
df.Value.loc[df.Value.str.startswith('XXX', na=False)] = np.nan
_
適用 メソッドを使用する
_In [80]: x = {'Value': ['Test', 'XXX123', 'XXX456', 'Test']}
In [81]: df = pd.DataFrame(x)
In [82]: df.Value.apply(lambda x: np.nan if x.startswith('XXX') else x)
Out[82]:
0 Test
1 NaN
2 NaN
3 Test
Name: Value, dtype: object
_
.loc
は不要です。目を書きなさい:
df.Value[df.Value.str.startswith('XXX')] = np.nan
_
代入する表現を計算したい場合は、Lambda関数が必要になる可能性があります。この場合はnp.nan
が十分です。