2016-08-30 7 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

入力として別の指標がかかりますが、あなたは、単に、アレイ状のオブジェクトを渡した場合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

関連する問題