我是python熊猫的新手,我试图读取一个Excel文件并进行一些计算并填充一些行。当我尝试填写值并打印结果时,在将值分配给它之前,结果仍然相同。
这就是我所做的。
df.loc[1][13] = 2
df就是我从我的excel文件中得到的
df = pd.read_excel('test.xlsx',header=5)
我已经检查了df中的数据,它们非常好。
所以第1行第13列的原始值为nan
,我想用一个数字代替它,例如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
希望我的问题对了...