在计算条件概率时,括号运算符是如何在Panda中工作的



我在研究ThinkBayes2,它给出的示例包含如下代码:selected = democrat[liberal]这三个变量都是pandas系列包含布尔类型。我以前从未见过任何操作员或使用过它,所以我想知道是否有人能告诉我它是如何在这里工作的。。。

a = pd.Series([1, 0, 1])
b = pd.Series([1, 2, 0])
a, b, a[b], b[a]

结果:

(0    1
1    0
2    1
dtype: int64,
0    1
1    2
2    0
dtype: int64,
1    0
2    1
0    1
dtype: int64,
1    2
0    1
1    2
dtype: int64)

不知道这里发生了什么。。。

什么都没有"有条件的";或";布尔值";在这里,只是普通的熊猫时尚索引。

由于b在概念上是[1, 2, 0],因此a[b]将检索a的内容,但使用b作为索引,并按顺序检索。

换句话说,a[b]将检索a[1], a[2], a[0],并且相当于a[[1, 2, 0]]

如果a包含字母,也许会更容易发现:

a = pd.Series(['a', 'b', 'c'])
b = pd.Series([1, 2, 0])
print(a[b])

输出

1    b
2    c
0    a

简单一步,非熊猫的等价物就是

a = ['a', 'b', 'c']
b = [1, 2, 0]
print([a[index] for index in b])

['b', 'c', 'a']

最新更新