Python 无法将函数正确应用于DataFrame列
我使用的数据帧如下所示: 我想创建一个新列“Name”,以便在线性回归中使用分类列“Name”。为了实现这一目标,我做了以下工作:Python 无法将函数正确应用于DataFrame列,python,pandas,dataframe,Python,Pandas,Dataframe,我使用的数据帧如下所示: 我想创建一个新列“Name”,以便在线性回归中使用分类列“Name”。为了实现这一目标,我做了以下工作: def named(name): if name == 'UNNAMED': return 0 else: return 1 df['Named'] = df['Name'].apply(lambda name: named(name)) 但是,这将给出一个只包含值1的列 函数本身可以工作,但由于某些原因,在DataFrame.apply方法
def named(name):
if name == 'UNNAMED':
return 0
else:
return 1
df['Named'] = df['Name'].apply(lambda name: named(name))
但是,这将给出一个只包含值1的列
函数本身可以工作,但由于某些原因,在DataFrame.apply方法中使用时不起作用。以下操作应该可以工作:
df['Named']=[i for i in map(lambda x: 0 if x.strip()=='UNNAMED' else 1, df['Name'])]
以下方面应起作用:
df['Named']=[i for i in map(lambda x: 0 if x.strip()=='UNNAMED' else 1, df['Name'])]
。此对象显然不等于未命名的
,因此得到1。你试过了吗?这对我来说是你想要的
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
。此对象显然不等于未命名的
,因此得到1。你试过了吗?这对我来说是你想要的
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
“名称”列中的“未命名”是否完全未命名?也许有空间等?我对代码做了一个小改动,请再试一次。对不起,我的错。“UNNAMED”实际上是:“UNNAMED”实际上,您在地图中的代码可以是
map(named,df[“Name”])
名称列中的未命名是否完全未命名?也许有空间等?我对代码做了一个小改动,请再试一次。对不起,我的错。“UNNAMED”实际上是:“UNNAMED”实际上,你在地图中的代码可以是map(named,df[“Name”])
更新到最新版本,你的代码仍然只返回1对不起,我的坏消息。“UNNAMED”实际上是:“UNNAMED”那么有引语吗?否则没关系。如果带有引号,您可以尝试“'UNNAMED'”
。不管怎样,你试过苹果地图吗?@Aayush Panda太棒了!您能确认解决方案正在运行吗?如果是,你能接受/赞成这个答案吗?关于熊猫的最新版本,你的代码仍然只返回1对不起,我的错。“UNNAMED”实际上是:“UNNAMED”那么有引语吗?否则没关系。如果带有引号,您可以尝试“'UNNAMED'”
。不管怎样,你试过苹果地图吗?@Aayush Panda太棒了!您能确认解决方案正在运行吗?如果是,你能接受/赞成这个答案吗?关于您使用的熊猫版本?您使用的熊猫版本是什么?