熊猫:如何设置标签列的最后一行的值?

时间:2019-12-09 13:41:40

标签: python pandas dataframe

我有一个数据框

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为增量),因此将创建新行。

正确的方法是什么?

谢谢!

2 个答案:

答案 0 :(得分:2)

如果需要按位置设置位置,那么对于索引和列,两个位置都是必需的,因此您可以按列名KIndex.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