2017-10-28 46 views
1

我想在熊貓數據框中設置一個值。如何在pandas中設置特定的單元格值?

ZEROS = np.zeros((4,4), dtype=np.int) 

df = pd.DataFrame(ZEROS, columns=['A1','B1','C1','D1']) 
df.at[2,3] = 32 
df 

enter image description here

我不想NaN整個列,預期產量低於:

使用numpy的我能夠像設定值以下

ZEROS[1][3] = 44 

輸出:

array([[ 0, 0, 0, 0], 
     [ 0, 0, 0, 44], 
     [ 0, 0, 0, 0], 
     [ 0, 0, 0, 0]]) 
+0

df.iloc [2,3] = 32 – Wen

回答

3

使用pd.DataFrame.iat引用和/或分配到單個的順序位置細胞。

ZEROS = np.zeros((4,4), dtype=np.int) 

df = pd.DataFrame(ZEROS, columns=['A1','B1','C1','D1']) 
df.iat[2,3] = 32 
df 

    A1 B1 C1 D1 
0 0 0 0 0 
1 0 0 0 0 
2 0 0 0 32 
3 0 0 0 0 

你也可以使用iloc然而,iloc可以取陣列狀的輸入。這使iloc更靈活,但也需要更多的開銷。因此,如果只是要改變一個單元格...使用iat


也看到這個帖子以獲取更多信息

loc/iloc/at/iat/set_value

2

使用iloc

df.iloc[2,3] = 32 

print(df) 
# A1 B1 C1 D1 
#0 0 0 0 0 
#1 0 0 0 0 
#2 0 0 0 32 
#3 0 0 0 0 

或者,如果你想通過索引和列名進行修改,使用loc

df.loc[2, 'D1'] = 32 
相關問題