首页 > 解决方案 > 过滤熊猫中小于某个值的负值

问题描述

我有两列“Esc1”和“Esc2”。我想应用“where”条件,如果 esc1 和 esc2 之间的差异小于 -30,则“是”小于 -30,否则“否”。

我使用了以下代码,

np.where((df['Esc1']-df['Esc2']<-30),"yes less than -30","No")

但上述结果将-4或-5等甚至差值视为“是小于-30”

标签: pandasdataframenumpy

解决方案


import numpy as np
import pandas as pd

df = pd.DataFrame()
df['Esc1'] = np.arange(10)
df['Esc2'] = np.arange(10, 50, 4)
df['diff'] = df['Esc1'] - df['Esc2']
pd.cut(df['diff'], bins=[-np.inf, -30, np.inf], labels=['yes less than -30', 'no'])

推荐阅读