2017-10-28 44 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 
相关问题