python - 比较其他 Pandas 数据框每一行的值(value)

标签 python pandas numpy

我有一个简单的 pandas 数据框,它有一个范围列。

map_dict =    { 'range' : [50, 100, 200, 500, 1000, 2000, 5000, 10000, 20000, 40000, 80000, 120000], 
               'sample' : [1000, 1000, 1000, 1000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000] }

pd.DataFrame.from_dict(map_dict)

我有一个值让我们说 x 现在我想比较列范围内每一行的 x,例如如果 x> 200 & x< 500 则将 x 与列样本中的匹配值相加。

再举个例子,如果 x = 4000,因为在这种情况下,范围列中的 x> 2000 & x< 5000。所以 sample 列中的匹配值为 2000,所以我将与 2000 相加

output:6000

如何比较其他数据框中的值并在下一列中获取匹配值?

最佳答案

我相信您需要减去值,比较大于 0 并获得 sample 列的第一个匹配值:

x = 4000

y = next(iter(df.loc[df['range'].sub(x) > 0, 'sample']))
#alternative for first matched value
#y = df.loc[ y > 0, 'sample'].to_numpy()[0]
print (y)
2000

print (x + y)
6000

关于python - 比较其他 Pandas 数据框每一行的值(value),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64117712/

相关文章:

python - 将多索引与 Pandas 中的单索引数据框合并

python - groupby 列同时显示其他列

python - 为什么转置一个 numpy 数组将它旋转 90 度?

python - 将列表列转换为二维 numpy 数组

python - 将 Eigen 数组从 C++ 传输到 Python 时地址发生变化

python - 使用 SQLAlchemy 的声明性语法时访问表实例的最佳方式

python - wmic 无效的 XSL 格式(或)文件名。错误间歇性

python - 如何命名 Pandas 系列

python - 如何在python中导入仅包含某些字符串的 "dat"文件

javascript - 如何在 JupyterLab 中通过 JavaScript 评估文档上下文中的 Python 代码?