建立一个函数来移除数据集中的最小值和最大值?

2024-09-18 22:13:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据帧。在这种情况下,对于少数列,我希望删除小于或大于某个截止值的值

例如:我想删除“price”列数据小于500且大于20000的行,以及“area”列数据小于20且大于1000的行

截止线如下:[('price', 500, 20000), ('area', 20, 1000)]

我需要在python中构建一个函数来实现这一点

data = data_frame
cut = cutoffs

for a in range(len(cut)):
    data = data[data[cut[a][0] >= cut[a][1]]]

for b in range(len(cut)):
    data = data[data[cut[b][0] <= cut[b][2]]]
    return data

这不是我想的那样。我需要把小于和大于的条件结合起来,但我无法理解


Tags: 数据函数infordatalenreturn情况
1条回答
网友
1楼 · 发布于 2024-09-18 22:13:56

既然您提到cutoffs可以有更多的行,您可以这样做:

for name, min, max in cutoffs:
  df = df[~(df[name] < min) & ~(df[name] > max)]

如果您想要一个相同的函数,请尝试:

def apply_cutoffs(df, cutoffs)
  for name, min, max in cutoffs:
    df = df[~(df[name] < min) & ~(df[name] > max)]
  return df

这样称呼:

df = apply_cutoffs(df, cutoffs)

相关问题 更多 >