在 pandas 索引对象的末尾添加一个值

新手上路,请多包涵

我有一个 pandas 索引对象,我想在它的末尾添加一个值。 .append() 方法似乎不像人们预期的那样工作,并且由于我正在尝试添加一个元素,所以我无法在 -1 的位置插入,因为这会将值放在第二个 -最后一个位置。例如

import pandas as pd
ser = pd.Series([1,2,3,4,5], index=[11,12,13,14,15])
indx = ser.index

假设我想将值 20 添加到索引的末尾。这会引发错误:

 indx.append(20)

这将返回 [11,12,13,14,20,15]:

 indx.insert(-1, 20)

这可行,但似乎是一种解决方法:

 indx.insert(len(indx), 20)

有什么我想念的吗?这是在熊猫 0.18.1 上。谢谢。

原文由 Alex 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 629
2 个回答

您需要在附加到给定的 index 对象时将一组索引值作为参数传递。

 indx.append(pd.Index([20]))   # Pass the values inside the list
Int64Index([11, 12, 13, 14, 15, 20], dtype='int64')

原文由 Nickil Maveli 发布,翻译遵循 CC BY-SA 3.0 许可协议

方法 append 将另一个索引作为输入,但是 union 如果您只是传递一个类似数组的对象,它将起作用:

 indx.union([20])

请注意,pandas 中的索引对象是不可变的,因此任何此类操作都将返回一个新索引,而不是修改现有索引。

原文由 IanS 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题