当前位置: 首页 > 知识库问答 >
问题:

为什么在熊猫中使用“==”返回一个序列而不是bool?

松高歌
2023-03-14

我只是不明白第二行“==”的意思:
-这不是一个测试,没有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

共有3个答案

龙博
2023-03-14

是的,这是一个测试。布尔表达式不限于if语句。

它看起来好像数据是一个数据帧(PANDAS)。用作数据帧索引的表达式表示选择器或筛选器。这意味着选择fieledcateg与变量cat匹配的每一行(显然是预定义的变量)。此行集合将成为一个新的数据帧,子集

荣波
2023-03-14

它创建一个带有索引的布尔序列,其中数据.categ等于cat,使用此布尔掩码,您可以过滤数据帧,换句话说子集将包含categcat中存储的值的所有记录。

这是一个使用数字数据的示例

np.random.seed(0)
a = np.random.choice(np.arange(2), 5)
b = np.random.choice(np.arange(2), 5)
df = pd.DataFrame(dict(a = a, b = b))


df[df.a == 0].head()

#   a   b
# 0 0   0
# 2 0   0
# 4 0   1

df[df.a == df.b].head()

#   a   b
# 0 0   0
# 2 0   0
# 3 1   1
吴凯泽
2023-03-14

它正在测试data.categ的每个元素是否与cat相等。生成真/假值向量的。这作为索引器传递给data[],它从data返回与向量中的真值相对应的行。

总之,整个表达式返回data中的行子集,其中data.categ的值等于cat

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

 类似资料:
  • 我已经能够验证是否会产生排序的。但是,它不会返回列表。为什么?

  • 问题内容: 我有数据集: 详细原始数据-> http://pastebin.com/beiEeS80 ,我放入其中,这是我完整的代码: 但这是返回错误 如何解决呢? 问题答案: 我在Jupyter中运行了此文件,并将exampledata.txt放置在与笔记本相同的目录中。 请注意第一行: 未在数据文件中定义时加载列。我删除了此列名。 解 说明 您看到的问题是pd.qcut的结果,假设5个bin大

  • 结束时更新更新2结束时更新 我从这里读到:从dataframe列获取列表 熊猫数据框列在拉出时是熊猫系列 然而,我的情况并非如此: 第一部分(建立DataFrame读取json刮擦)因为它包含业务信息,我不能显示完整的代码,但基本上它读取一行数据(存储在系列中),并在DataFrame的末尾追加。 下一部分(检查类型):(请忽略函数的功能) 最后调用函数:(“Raw_Impressions”是一个

  • 在f2中,我们有指针 改为func f2(arg int)(int,*error)?或者,在这种情况下,为什么我们返回指针而不是值?

  • 问题内容: 在Java中,hashcode()方法返回整数而不是long。有什么具体原因吗? 问题答案: 那么,一个良好的理由是,基于数据结构(,)使用一个数组来存储箱,并且阵列被限制为索引。 如果必须将其映射到数组索引,那么您将一无所获。

  • 问题内容: 我试图从整个熊猫数据框中获取最大值。我对它来自哪个行或列不感兴趣。我只对数据框中的单个最大值感兴趣。 这是我的数据框: 看起来是这样的: 预期产量: 我当时假设df.max()会完成这项工作,但是它为每一列返回一个最大值,但是我对此并不感兴趣。我需要整个数据框的最大值。 问题答案: 可以使用获得的所有的数据帧中值的最大值,或者我们使用: 最大值而不是43.0,因为在CPython2中,