如何处理数据框中的负值
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
问题。这取决于业务,他们如何生成它,是手动生成还是计算机生成。
我们可以尝试的东西很少
- 过滤所有负值,找出
statistics
和root cause
以及对整个文件的影响。
- 如果它是计算机生成的,
re-calculate
带有一些 if else 条件。
- 我们可以将
different pipelines
设为负值,具体取决于业务。
- 如果不需要该列,我们可以删除该列(多重共线性问题)
- 尝试
Data cleaning
和missing 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)
假设我有一个包含不同列的数据框。并且某些列包含负值,例如 包含一些负数的金额列是不可能的,因为金额不能为负数,因此如何处理列中的负数。
我假设您想将“金额”列中的所有负值设置为 0(或其他一些值)。您可以对您的列应用 lambda 函数以将负值替换为 0,并保持正值不变:
df['amount'] = df['amount'].apply(lambda x: 0 if x < 0 else x)
这是一个 Data Quality
问题。这取决于业务,他们如何生成它,是手动生成还是计算机生成。
我们可以尝试的东西很少
- 过滤所有负值,找出
statistics
和root cause
以及对整个文件的影响。 - 如果它是计算机生成的,
re-calculate
带有一些 if else 条件。 - 我们可以将
different pipelines
设为负值,具体取决于业务。 - 如果不需要该列,我们可以删除该列(多重共线性问题)
- 尝试
Data cleaning
和missing 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)