当不同列中的值在两个值之间时,Python需要获取一列数据的平均值或平均值

Posted

技术标签:

【中文标题】当不同列中的值在两个值之间时,Python需要获取一列数据的平均值或平均值【英文标题】:Python need to get the average or mean of a column of data when the value in a different column is between two values 【发布时间】:2021-08-18 19:28:34 【问题描述】:

ColB 介于 7 和 8 之间时,我想得到 ColA 的平均值。所以在这种情况下,它将是 5.5。我试过了:

Avg = ColA[7 <= ColB <= 8].mean()

Sample of data

问题是我收到以下错误:

ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

如果我只使用一个条件,那么它执行时不会出错。

Avg =ColA[ColB >= 7].mean()
print(Avg)

当不同列的值介于两个集合 va 之间时,如何使用获取一列的平均值

【问题讨论】:

How to make good reproducible pandas examples 你真的在用熊猫吗?您应该相应地标记您的帖子。 【参考方案1】:

在函数之间使用pandas

df.loc[df['ColB'].between(7, 8), 'ColA'].mean()

【讨论】:

这非常有效。我发现你也可以设置包含 ex。 .between(1, 4, inclusive="neither") 选项包括“both”, “neither”, “left”, “right”

以上是关于当不同列中的值在两个值之间时,Python需要获取一列数据的平均值或平均值的主要内容,如果未能解决你的问题,请参考以下文章

在 txt 文件中的不同列中取两个特定值之间的行 [关闭]

当同一列中的值不匹配但不同列重复时将返回结果的 SQL 查询

将双引号添加到列中的值,只要值在数据框中有引号

根据上一列中的值在 Python Dataframe 中构建行

如果列中的值在一组值列表中,则过滤数据框行[重复]

python pandas-将带有两个参数的函数应用于列