为什么在熊猫中使用“==”返回一个系列而不是布尔值?

Ama*_*mox 12 python dataframe pandas matrix-indexing

我就是无法弄清楚第二行的“==”是什么意思:
- 这不是测试,没有 if 语句......
- 这不是变量声明......

我以前从未见过这个,问题是data.ctage==cat熊猫系列而不是测试...

for cat in data["categ"].unique():
    subset = data[data.categ == cat] # Création du sous-échantillon
    print("-"*20)
    print('Catégorie : ' + cat)
    print("moyenne:\n",subset['montant'].mean())
    print("mediane:\n",subset['montant'].median())
    print("mode:\n",subset['montant'].mode())
    print("VAR:\n",subset['montant'].var())
    print("EC:\n",subset['montant'].std())
    plt.figure(figsize=(5,5))
    subset["montant"].hist(bins=30) # Crée l'histogramme
    plt.show() # Affiche l'histogramme
Run Code Online (Sandbox Code Playgroud)

Dav*_*sta 13

它正在测试 的每个元素是否data.categ与 相等cat。这会产生一个真/假值的向量。这在 indexer 中传递给data[],它返回data与向量中的 True 值相对应的行。

总而言之,整个表达式返回data值为data.categequals的行的子集cat

(似乎可以使用 更优雅地完成整个操作data.groupBy('categ').apply(someFunc)。)