熊猫 - 有行子集的fillna

时间:2017-04-11 16:57:14

标签: 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)

这不起作用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)

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

3 个答案:

答案 0 :(得分:2)

如果您已经解决了Intensity为空的行,我认为您甚至不需要df.loc[(df.Available) & (df.Intensity.isnull()), 'Intensity'] = 0

df.loc[df.Available, 'Intensity'] = df.loc[df.Available, 'Intensity'].fillna(0)

或者你可以做

{{1}}

答案 1 :(得分:1)

IIUC:

df.query('Available == True')['Intensity'].fillna(0)

答案 2 :(得分:1)

为了便于阅读,我把它分成了几行

a = df.Available == True
b = df.Intensity.isnull()
df.loc[(a & b), 'Intensity'] = 0

但是,这也应该有效

a = df.Available == True
b = df.Intensity.isnull()
df.Intesity *= (a & b)