2017-04-11 8 views
1

특정 조건이 적용되는 0으로 일부 행을 채우려고합니다. 이 IndexingError: Unalignable boolean Series key provided 기원전 작동하지 않습니다팬다 - 행의 하위 집합이있는 fillna

df.loc[:,(df.Available == True) & (df.Intensity.isnull())].Intensity = df.loc[(df.Available == True) & (df.Intensity.isnull())].Intensity.fillna(0, inplace=True) 

하지만 때 난 그냥 사본을 갱신으로 등록

df.loc[(df.Available == True) & (df.Intensity.isnull())].Intensity = df.loc[(df.Available == True) & (df.Intensity.isnull())].Intensity.fillna(0, inplace=True) 

시도 : 나는 노력하고있어. 어떻게해야합니까? 고맙습니다!

답변

2

를 작동해야

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

그러나 읽기 쉽도록 여러 줄로이 파산 Intensity가 null 인 행을 이미 처리하고있는 경우.

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

또는 당신은 당신은 다시 할당해야

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

IIUC :

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

할 수 있습니다. – piRSquared

1

나는이 또한 내가 당신도 fillna 필요하지 않습니다 생각

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