小编use*_*808的帖子

检查pandas.Series.index是否包含值

我(我想)知道如何检查一个值是否包含在pandas系列的索引中,但我不能让它在下面的例子中工作.这可能是一个错误吗?

首先,我生成一些随机数:

import numpy as np
import pandas as pd

some_numbers = np.random.randint(0,4,size=10)
print(some_numbers)
Run Code Online (Sandbox Code Playgroud)

输出:

[0 2 2 3 1 1 2 2 3 2]
Run Code Online (Sandbox Code Playgroud)

然后,我创建一个包含这些数字的系列并计算它们的频率

s = pd.Series(some_numbers)
gb = s.groupby(s).size() / len(s)
print(gb)
Run Code Online (Sandbox Code Playgroud)

输出:

0    0.1
1    0.2
2    0.5
3    0.2
dtype: float64
Run Code Online (Sandbox Code Playgroud)

到现在为止还挺好.但我不明白下一行代码的输出:

1.3 in gb
Run Code Online (Sandbox Code Playgroud)

输出:

True
Run Code Online (Sandbox Code Playgroud)

输出不应该是假的吗?(我在Python 3.6.2上有pandas 0.20.3)

我知道我可以使用

1.3 in list(gb.index)
Run Code Online (Sandbox Code Playgroud)

但如果系列很大,这个效率不高.

更简单的例子来展示BUG

import pandas as pd
s = pd.Series([.1,.2,.3])
print(s)

0    0.1
1    0.2
2    0.3
dtype: float64
Run Code Online (Sandbox Code Playgroud)
3.4 in s …
Run Code Online (Sandbox Code Playgroud)

python indexing series pandas

9
推荐指数
1
解决办法
1048
查看次数

标签 统计

indexing ×1

pandas ×1

python ×1

series ×1