【问题标题】:What to do with negative value in a dataFrame [closed]如何处理数据帧中的负值 [关闭]
【发布时间】:2021-07-19 04:16:42
【问题描述】:

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

【问题讨论】:

  • 检查使用它的点的值?或者如果它产生错误就捕获错误?
  • 您如何处理它取决于导致负值的原因以及您尝试对数据执行的操作。请使用更多详细信息更新您的问题,以澄清问题以及您要完成的工作。

标签: python pandas machine-learning data-science


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    这是一个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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-09-27
      • 1970-01-01
      • 2014-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多