我有一个pandas数据框。我正在尝试修改最后一行中name
列的值。
我尝试过了。
df.loc[-1,'name'] = "something"
这个可行
现在我用查询从df
筛选几行,并将其称为df_query
而我的df_query
中的最后一行是
id name
21 965 kris
我检查索引-1
df_query.loc['name'].iloc[-1]
它显示“kris”
现在在df_query
上我尝试
df_query.loc[-1,'name'] = "something"
它会添加一行而不是用 something
替换 kris
id name
21 965.0 kris
-1 NaN "something"
还要将 convers id 从 int 转换为 float。
为什么有时它有效,有时它无效。
后来在搜索后我发现在 https://dev59.com/T18e5IYBdhLWcg3w-Ocn#49510469 找到了答案。
仅使用 iloc[-1, 'a'] 是行不通的,因为 -1 不在索引中。
我无法理解上述原因。
并建议尝试:
df_query.loc[df_query.loc.index[-1],'name'] = "something"
现在它可以工作了。
有人能解释一下发生了什么吗?
df.loc[-1,'name'] = "something"
- 如果有index=-1
,它也会替换第一行。 - jezrael