我有一个数据框
x = pd.DataFrame([11, 22, 33, 44], columns=['K'])
x
K
0 11
1 22
2 33
3 44
我想设置K列中最后一行的值。这适用于“复制警告”:
x['K'].iloc[-1] = 999
我尝试使用.loc,但是将-1视为标签,并且由于我的索引很好(从0开始,以1为增量),因此将创建新行。
正确的方法是什么?
谢谢!
答案 0 :(得分:2)
如果需要按位置设置位置,那么对于索引和列,两个位置都是必需的,因此您可以按列名K
和Index.get_loc
获取位置:
x.iloc[-1, x.columns.get_loc('K')] = 999
#alternative for set scalar
#x.iat[-1, x.columns.get_loc('K')] = 999
或由具有最后索引值的标签设置(索引值必须是唯一的):
x.loc[x.index[-1], 'K'] = 999
#alternative for set scalar
#x.at[x.index[-1], 'K'] = 999
答案 1 :(得分:1)
尝试一下:
x.tail(1)['K'] = 999
编辑:以上内容给出了复制警告。
这应该在没有警告的情况下起作用-
x.at[x.index[-1],'K'] = 999