Python 熊猫:为什么通过整数索引访问元素会将不同的对象返回到命名索引
当通过数字索引或命名索引访问Pandas系列中的元素时,将返回相同的值。但是,当对两个返回值使用“is”比较运算符时,将返回FalsePython 熊猫:为什么通过整数索引访问元素会将不同的对象返回到命名索引,python,pandas,indexing,Python,Pandas,Indexing,当通过数字索引或命名索引访问Pandas系列中的元素时,将返回相同的值。但是,当对两个返回值使用“is”比较运算符时,将返回False 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']) 输出: True False 有人能解释
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'])
输出:
True
False
有人能解释为什么这两个方法返回不同的对象吗?结果是值的副本,而不是序列中的实际对象吗?因为熊猫每次都返回一个副本(新对象):
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
因为熊猫每次都返回一个副本(新对象):
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