首页 > 解决方案 > Pandas Dataframe - 系列的真值不明确

问题描述

我有以下代码。

import pandas as pd
data = {'income_bracket':['<=50k', '<=75k', '<=125k', '>1(25k']}
df = pd.DataFrame(data)
def label_fix(label):
    if df['income_bracket']== '<=50K':
        return 0
    else:
        return 1
df['income_bracket']=df['income_bracket'].apply(label_fix)

当我运行代码时,我收到以下错误。

ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

我真的很感激这里的任何帮助。谢谢

标签: pythonpandasdataframe

解决方案


import pandas as pd
data = {'income_bracket':['<=50k', '<=75k', '<=125k', '>1(25k']}
df = pd.DataFrame(data)
def label_fix(label):
    if label== '<=50K':
         return 0
    else:
         return 1
df['income_bracket']=df['income_bracket'].apply(label_fix)

这是您的代码片段的更正版本。你正在做的是调用 df['income_bracket'] 这是一个系列。相反,您应该在 apply() 中使用作为参数传递给 label_fix() 的“标签”。将 '<=50K' 更改为 '<=50k' 否则所有值都将为 1


推荐阅读