2017-06-16 3 views
1

Pandasシリーズの要素に数値インデックスまたは名前付きインデックスでアクセスすると、同じ値が返されます。ただし、返された2つの値に対して 'is'比較演算子を使用すると、Falseが返されます。Pandas:整数インデックスで要素にアクセスすると、別のオブジェクトが名前付きインデックスに返される

import pandas as pd 

ser = pd.Series([100, 200, 300, 400], ['alpha', 'bravo', 'charlie', 'delta']) 

print(ser[0] == ser['alpha']) 
print(ser[0] is ser['alpha']) 

出力:2つの方法は異なるオブジェクトを返す理由

True 
False 

誰かが説明できますか?結果はシリーズの実際のオブジェクトではなく、値のコピーですか?

答えて

0

パンダが毎回コピー(新しいオブジェクト)を返すので:

In [23]: id(ser['alpha']) 
Out[23]: 146103488 

In [24]: id(ser['alpha']) 
Out[24]: 146103536 

In [25]: id(ser['alpha']) 
Out[25]: 146103560 

In [26]: id(ser[0]) 
Out[26]: 146103584 

In [27]: id(ser[0]) 
Out[27]: 146103512 

In [28]: id(ser[0]) 
Out[28]: 146103608 
関連する問題