2017-05-08 86 views
0

我有以下數據框:設置單個單元格的值爲NaN與熊貓數據幀取代

In [96]: df1 
Out[96]: 
    a b c 
    0 1 1 26 
    1 1 2 38 
    2 1 3 17 

如果我用替換法來對整個數據幀它的工作原理替換楠值:

In [97]: df1.replace(2, np.nan, inplace=True) 

In [98]: df1 
Out[98]: 
    a b c 
0 1 1.0 26 
1 1 NaN 38 
2 1 3.0 17 

但是,如果我試圖取代與南單個單元格值它不工作:

In [101]: df1.iloc[1:2,0:1].replace(1, np.nan, inplace=True) 

In [102]: df1 
Out[102]: 
    a b c 
0 1 1.0 26 
1 1 NaN 38 
2 1 3.0 17 

這種行爲的原因是什麼?

+4

試試這個:'df1.iloc [1:2,0:1] = np.nan'或者乾脆'df1.iloc [1,1] = NP .nan' – MaxU

+4

'df1.iloc [1:2,0:1]'是副本。即使你傳遞'inplace = True',它也會執行拷貝的操作。 – ayhan

回答

1

除了偉大的評論。你可以放棄inplace=True,只是重新分配的結果

df1.iloc[1:2, 0:1] = df1.iloc[1:2, 0:1].replace(1, np.nan) 

df1 

    a b c 
0 1.0 1.0 26 
1 NaN NaN 38 
2 1.0 3.0 17