Pandas - 用行子集填充

lte*_*e__ 3 python pandas fillna

我试图在某些条件适用的情况下用 0 填充一些行。我想:

df.loc[:,(df.Available == True) & (df.Intensity.isnull())].Intensity = df.loc[(df.Available == True) & (df.Intensity.isnull())].Intensity.fillna(0, inplace=True)
Run Code Online (Sandbox Code Playgroud)

这不起作用 bc IndexingError: Unalignable boolean Series key provided,但是当我尝试时

df.loc[(df.Available == True) & (df.Intensity.isnull())].Intensity = df.loc[(df.Available == True) & (df.Intensity.isnull())].Intensity.fillna(0, inplace=True)
Run Code Online (Sandbox Code Playgroud)

注册为更新副本。我怎样才能做到这一点?谢谢!

ger*_*eth 6

fillna如果您已经在处理 Intensity 为空的行,我认为您甚至不需要。

df.loc[(df.Available) & (df.Intensity.isnull()), 'Intensity'] = 0
Run Code Online (Sandbox Code Playgroud)

或者你可以做

df.loc[df.Available, 'Intensity'] = df.loc[df.Available, 'Intensity'].fillna(0)
Run Code Online (Sandbox Code Playgroud)