2016-08-30 155 views
1

我有一個熊貓索引對象,我想在它的末尾添加一個值。 .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。謝謝。

回答

2

您需要傳遞一組索引值作爲參數,同時附加到給定的index對象。

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

append另需索引作爲輸入,但如果簡單地傳遞數組狀物體union將工作的方法:

indx.union([20]) 

注意,在大熊貓索引對象是不可變的,因此任何這樣的操作將返回一個新的索引而不是修改現有索引。

2

你可能想嘗試這兩個選項:

import pandas as pd 
import numpy as np 
ser.append(pd.Series([np.nan], index = [20])) 

# 11 1.0 
# 12 2.0 
# 13 3.0 
# 14 4.0 
# 15 5.0 
# 20 NaN 
# dtype: float64 

ser.set_value(20, np.nan) 

# 11 1.0 
# 12 2.0 
# 13 3.0 
# 14 4.0 
# 15 5.0 
# 20 NaN 
# dtype: float64 
+0

如果你的目標是擴大的系列,而不是指數本身,你應該有這個答案去。 – IanS