的NaN我想根據基於列例如,如果B> 5我想使整行的NaN一個條件,使整排的NaN:Python的熊貓數據幀:使整個行根據狀態
未處理數據幀:
'A''B'
1 4
3 5
4 6
8 7
使整排的NaN,如果B> 5
'A''B'
1 4
3 5
NaN NaN
NaN NaN
謝謝。
的NaN我想根據基於列例如,如果B> 5我想使整行的NaN一個條件,使整排的NaN:Python的熊貓數據幀:使整個行根據狀態
未處理數據幀:
'A''B'
1 4
3 5
4 6
8 7
使整排的NaN,如果B> 5
'A''B'
1 4
3 5
NaN NaN
NaN NaN
謝謝。
你可以也使用df.loc[df.B > 5, :] = np.nan
例
In [14]: df
Out[14]:
A B
0 1 4
1 3 5
2 4 6
3 8 7
In [15]: df.loc[df.B > 5, :] = np.nan
In [16]: df
Out[16]:
A B
0 1.0 4.0
1 3.0 5.0
2 NaN NaN
3 NaN NaN
人類語言
df.loc[df.B > 5, :] = np.nan
可以翻譯成:
分配
np.nan
到數據幀的任何柱(:
)(df
),其中 條件df.B > 5
已驗證。
使用boolean indexing
每條件分配值:
df[df['B'] > 5] = np.nan
print (df)
A B
0 1.0 4.0
1 3.0 5.0
2 NaN NaN
3 NaN NaN
或者DataFrame.mask
它默認的條件添加NaN
S:
df = df.mask(df['B'] > 5)
print (df)
A B
0 1.0 4.0
1 3.0 5.0
2 NaN NaN
3 NaN NaN
df = df.where(~(df['B']>5))
一個與'where'即'df.where(〜(DF [ 'B']> 5))' – Dark
或者用reindex
df.loc[df.B<=5,:].reindex(df.index)
Out[83]:
A B
0 1.0 4.0
1 3.0 5.0
2 NaN NaN
3 NaN NaN
好的,但是'loc'這裏是多餘的,你怎麼看? – jezrael
@ s900n我建議接受jezrael的答案,因爲它涵蓋更多選項,我的這裏是完成選項.. – MedAli
@jezrael你是對的,但我覺得'df.loc'更具可讀性。 – MedAli