如何处理数据框中的负值

What to do with negative value in a dataFrame

假设我有一个包含不同列的数据框。并且某些列包含负值,例如 包含一些负数的金额列是不可能的,因为金额不能为负数,因此如何处理列中的负数。

我假设您想将“金额”列中的所有负值设置为 0(或其他一些值)。您可以对您的列应用 lambda 函数以将负值替换为 0,并保持正值不变:

df['amount'] = df['amount'].apply(lambda x: 0 if x < 0 else x)

这是一个 Data Quality 问题。这取决于业务,他们如何生成它,是手动生成还是计算机生成。

我们可以尝试的东西很少

  1. 过滤所有负值,找出statisticsroot cause以及对整个文件的影响。
  2. 如果它是计算机生成的,re-calculate 带有一些 if else 条件。
  3. 我们可以将 different pipelines 设为负值,具体取决于业务。
  4. 如果不需要该列,我们可以删除该列(多重共线性问题)
  5. 尝试Data cleaningmissing values imputation

df

def handle_negatives(row):
    if row <0:
        # whatever  you logic
        return 0
    else:
        return row
df["col"] =df["col"].apply(handle_negatives)