python - Pandas :如何设置标签列的最后一行值?

标签 python pandas dataframe

我有一个数据框

x = pd.DataFrame([11, 22, 33, 44], columns=['K'])
x
    K
0  11
1  22
2  33
3  44

我想设置 K 列最后一行的值。这与 Copy-Warning 一起使用:

x['K'].iloc[-1] = 999

我试过 .loc,但 -1 被视为标签,并且由于我的索引很好(从 0 开始,递增 1),将创建一个新行。

正确的做法是什么?

谢谢!

最佳答案

如果需要按位置设置两个位置 - 对于索引和列,那么您可以通过 Index.get_loc 按列名 K 获取位置:

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

关于python - Pandas :如何设置标签列的最后一行值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59250143/

相关文章:

r - 获取两列的最小值

python - 使用 Pandas 和 Numpy 按 ID 索引查找比率的计算时间很长

Python 3 - 获取列表框小部件中的项目数量

python - Pandas ,如何避免使用 iterrow(如何根据另一个数据框中的值将值分配给数据框中的新列)

python - Numpy 数组,数据必须是一维的

python - 在(非常大的)pandas 数据框中查找值并将其存储到字典中

r - 分组 data.fame 后的自定义函数

Python:避免关于太多参数的 Pylint 警告

python - 无法从模板中的 for 循环中获得我想要的内容?

python - 在运行时发现 Java .jar 中的 Jython 模块?