import pandas as pd
import numpy as np
df = pd.DataFrame([[1,2,3],[4,5,6]], columns=['a','b','c'])
df[df['c'] == 3]['a'] = np.nan
df
>>>
a b c
0 1 2 3
1 4 5 6
為什么0,a不是 NaN?我希望 in 的值0,a會被np.nan.
uj5u.com熱心網友回復:
問題是您創建鏈式索引:
df[df['c'] == 3]
和:
df[df['c'] == 3]['a']
因此,在設定值之后不會將新值傳播到原始 DataFrame。
為了避免它使用DataFrame.loc:
df.loc[df['c'] == 3, 'a'] = np.nan
print (df)
a b c
0 NaN 2 3
1 4.0 5 6
更多資訊。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/414811.html
標籤:
