gpt4 book ai didi

python - x.iloc[1] ['x'] 和 x ['x'].iloc[1] 有什么区别

转载 作者:行者123 更新时间:2023-12-01 08:26:29 25 4
gpt4 key购买 nike

我无法使用 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']=16

print(x.iloc[1]['x'])

nan
<小时/>
x['x'].iloc[1]=16

print(x.iloc[1]['x'])

16.0

最佳答案

避免链式索引

正如评论中所指出的,您的两种选择都不能保证有效。 documentation解释理由和理由。

一个有效而另一个无效这一事实不值得调查,因为这些是可能会更改的实现细节。

对于标量,您应该使用 iat 按整数位置或at按标签设置值。

iat通过整数位置进行标量设置

x.iat[1, x.columns.get_loc('x')] = 16

at通过标签进行标量设置

x.at[x.index[1], 'x'] = 16

如果您的数据帧索引是常规的pd.RangeIndex,则可以简化最后一个分配:

x.at[1, 'x'] = 16

关于python - x.iloc[1] ['x'] 和 x ['x'].iloc[1] 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54211190/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com