我正在尝试在 Pandas 数据框中设置一个值。
ZEROS = np.zeros((4,4), dtype=np.int)
df = pd.DataFrame(ZEROS, columns=['A1','B1','C1','D1'])
df.at[2,3] = 32
df
我不希望整个列都为 NaN
,预期的输出如下:
使用 numpy 我可以设置如下值
ZEROS[1][3] = 44
输出:
array([[ 0, 0, 0, 0],
[ 0, 0, 0, 44],
[ 0, 0, 0, 0],
[ 0, 0, 0, 0]])
最佳答案
使用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
另请参阅此帖子以获取更多信息
关于python - 如何在 Pandas 中设置特定的单元格值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46995270/