在满足特定条件的熊猫行之间进行简单的计算

新手AF

我有两个非常大的DataFrame,它们的相关性如下。第一个DataFrameID作为索引并指定MinMax第二个DataFrame每个都有一个分数和价格ID

对于每一个ID,我想找到的平均价格的对应的,属于之间的恩怨maxmin scores的那个ID

一个例子:

dt = [[1,3],[0,2],[1,3],[0,3],[1,4]]

df = pd.DataFrame(dt, columns = ['Min score','Max score'],index=[1,2,3,4,5])

dt_2 = [[1,1,10],[1,4,12],[1,3,20],[1,1,3],[2,3,2],[2,1,4],[3,1,7],[3,2,9],[3,2,3],[4,4,4],[4,2,3],[4,1,2],[5,1,1],[5,3,5],[5,5,5],[5,0,10]]

df_2 = pd.DataFrame(dt_2,columns = ['ID','score','price'])

我想要的输出是

ID  Avg
1   11
2   4
3   6.33
4   2.5
5   3

例如,对于ID=1min score=1max score=3,所以只有价格10,20和3个是相关的。这些平均值是11。

是否有内置的熊猫函数可以处理此问题?任何帮助表示赞赏。谢谢。

寻求

干得好:

df_3 = pd.merge(df_2, df, left_on="ID", right_index=True, how="left")
df_3[
    (df_3.score >= df_3.loc[:, "Min score"]) & (df_3.score <= df_3.loc[:, "Max score"])
].groupby("ID").price.mean()

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在 Python 中满足特定条件的行之间选择行

在满足熊猫特定条件的地方更新行值

如何获得满足特定条件的行熊猫

如何计算满足特定条件的大熊猫groupby的值

熊猫查找满足特定条件的每个组中的行的索引,并为这些行分配值

熊猫:计算满足条件的列之间的时间

如果满足特定条件,则同一列的行之间的差异

每当行满足特定条件时,如何在行之间找到最大值?

满足特定条件的熊猫数据框正向填充

进餐:如何计算满足特定条件的座席总数

计算满足特定条件的postgreSQL表中的项目

计算列表中满足特定条件的值

计算满足特定条件的独特对象

如何计算“ group by”组中满足特定条件的行数

如果仅在MongoDB中满足特定条件,则进行分组

如果组中的一行在熊猫中满足特定条件,如何选择组的所有行

满足特定条件的代码?

Grep找出满足特定条件的“大多数”行

逐行读取csv文件并保存满足特定条件的行

如何获取满足特定条件的行的索引号

如果两列满足特定条件,则 SQL 返回行

如何删除满足R中某些特定条件的行

按行排除满足特定条件的记录

在 Pandas 数据框中获取满足特定条件的行

选择一行或多行满足特定条件的组

在MySQL中满足特定条件时如何排除行

如何找到满足特定条件的矩阵行的索引?

如何创建满足特定条件的行索引的Numpy矩阵?

Pandas DataFrame:删除满足特定条件的行