嗨,我还是熊猫方法的新手,我只是想对pd.Series有一个更好的了解
ser = pd.Series(data=[100,"200",300,"400",500],index=["tom","bob","nancy","dan","eric"])
例如,我发现何时要使用其索引提取值
ser["nancy"]
输出将为
300
但是如果我使用嵌套列表
ser[["nancy"]]
我会得到
nancy 300
我知道这可能是一件简单的事情,但我只是想知道其背后的原因,以便更好地理解 并且如果您有任何资源,我建议我会非常感激
谢谢
答案 0 :(得分:4)
使用时:
ser["nancy"]
>> 300
它返回一个整数
type(ser['nancy']
>> int
但是当您使用
ser[['nancy']]
>> nancy 300
dtype: object
它实际上返回一个序列:
type(ser[['nancy']])
>> pandas.core.series.Series
因此,当您使用列表时,它总是返回一个系列,而不仅仅是返回一个字符串时的对应值:
ser[["nancy", "dan"]]
>> nancy 300
dan 400
dtype: object
答案 1 :(得分:3)
当您执行ser["nancy"]
时,您会向熊猫发出信号,表示您需要单个值,因此它将在"nancy"
索引键处返回该值。当您执行ser[["nancy"]]
时,您会向熊猫发出信号,您可能需要多个值,因此它将返回包含这些(可能)多个值的数据结构(在本例中为Series)。下面的示例对此进行了更好的说明:
import pandas as pd
ser = pd.Series(data=[100, "200", 300, "400", 500], index=["tom", "bob", "nancy", "dan", "eric"])
result = ser["nancy"]
print(result, type(result))
result = ser[["nancy", "dan"]]
print(result, type(result))
输出
300 <class 'int'>
nancy 300
dan 400
dtype: object <class 'pandas.core.series.Series'>
从输出中可以看到,ser["nancy"]
返回ser
处的"nancy"
的值,在这种情况下为300,您可以通过类型进一步验证它是一个值( int)。对于第二种情况,结果类型为系列。