2016-08-30 4 views
1

팬더 색인 개체가 있고 그 끝에 단일 값을 추가하고 싶습니다. .append() 메서드는 예상대로 작동하지 않는 것 같아요, 요소를 추가하려고하기 때문에 -1 위치에 삽입 할 수 없습니다. 그 이유는 두 번째 -to- 마지막 위치. 예 :팬더 색인 개체의 끝에 값 추가

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

입력으로 다른 인덱스 필요하지만, 단순히 배열 형 객체 전달하면 union이 작동 append있어서 팬더의 인덱스 오브젝트는 불변한다는 그래서 그러한 조작은을 반환

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