使用df.iloc()赋值将返回NaN是因为df.iloc()是用于按照位置选择数据的方法,而不是用于赋值的方法。df.iloc()返回的是一个视图,而不是原始数据的副本。因此,对于使用df.iloc()进行赋值操作,会导致原始数据不会被修改,而新赋的值将会被视为NaN。
如果想要赋值操作生效,可以使用df.loc()方法。df.loc()是基于标签进行选择和赋值的方法。通过指定行和列的标签,可以对指定位置进行赋值操作。
以下是一个示例代码:
import pandas as pd
# 创建一个DataFrame
data = {'A': [1, 2, 3],
'B': [4, 5, 6],
'C': [7, 8, 9]}
df = pd.DataFrame(data)
# 使用df.loc()进行赋值操作
df.loc[0, 'A'] = 10
print(df)
输出结果为:
A B C
0 10 4 7
1 2 5 8
2 3 6 9
在这个例子中,我们使用df.loc[0, 'A'] = 10将第一行第一列的值赋为10。可以看到,赋值操作生效,并且原始数据被修改。
领取专属 10元无门槛券
手把手带您无忧上云