我无法使用 x.iloc[1]['x']=16 将 np.nan 的值更改为 16,但我可以使用 x['x'].iloc[1]=16 更改它。为什么?这两个表达式之间有什么区别?x = pd.DataFrame({'x': [1, np.nan, 3], 'y': [3, 4, 5]})x.iloc[1]['x']=16print(x.iloc[1]['x'])nanx['x'].iloc[1]=16print(x.iloc[1]['x'])16.0
2 回答
隔江千里
TA贡献1906条经验 获得超10个赞
iloc 是一个很棒的工具,如果您想以自己想要的方式使用它,我会补充说,您必须首先传递要选择行的列。在数据帧上循环以更改值的示例:
import pandas as pd
d = {'col1': [1, 2,'np.nan',4,5], 'col2': ['A','B','C','D','E']}
df = pd.DataFrame(data=d)
col1 col2
0 1 A
1 2 B
2 np.nan C
3 4 D
4 5 E
for i in range(len(df)):
if df['col1'].iloc[i] == "np.nan":
df['col1'].iloc[i] = 16
print(df)
col1 col2
0 1 A
1 2 B
2 16 C
3 4 D
4 5 E
添加回答
举报
0/150
提交
取消