替换python pandas数据框中的某个值

时间:2019-09-19 18:44:26

标签: python pandas

我是python熊猫的新手,我试图读取一个Excel文件并进行一些计算并填充一些行。当我尝试填写值并打印结果时,在将值分配给它之前,结果仍然相同。

这就是我所做的。

df.loc[1][13] = 2

df就是我从我的excel文件中得到的

df = pd.read_excel('test.xlsx',header=5)

我已经检查了df中的数据,它们非常好。

所以第1行第13列的原始值为nan,我想用一个数字代替它,例如2,但是上面的代码不起作用。

2 个答案:

答案 0 :(得分:2)

如本文档https://pandas.pydata.org/pandas-docs/version/0.23/10min.html#selection-by-position中所述,.loc方法提供按标签的选择,而.iloc方法提供按位置的选择。另外,由于选择的输出是标量,因此也可以使用.iat方法。因此,以下两种情况均适用于您的情况:

df.iloc[1, 13] = 2 
df.iat[1,13] = 2

通常,我更喜欢使用.loc或.iloc之一,具体取决于选择是按标签还是按位置。

答案 1 :(得分:1)

查看iloc的熊猫文档

基于一个非常简单的示例,该示例专门用于替换一个给定单元格中的值,如下所示:

import pandas as pd
mydict = [{'a': 1, 'b': 2, 'c': 3, 'd': 4},\
          {'a': 100, 'b': 200, 'c': 300, 'd': 400},\
          {'a': 1000, 'b': 2000, 'c': 3000, 'd': 4000 }]
df = pd.DataFrame(mydict)

print(df.iloc[0,2]) # print original value from row 0, column 2
df.iloc[0,2] = 9 # replace value in row 0, column 2
print(df.iloc[0,2]) #verify replaced value in row 0, column 2

希望我的问题对了...