Python 仅当满足条件时,才对柱应用方法
我想使用Python 仅当满足条件时,才对柱应用方法,python,pandas,dataframe,Python,Pandas,Dataframe,我想使用df。将应用于数据帧列 df代表分层生物分类 我想根据列中是否存在数据显示相关分类。 我已经编写了一个函数,可以实现以下功能: def condition(data): for i in range(len(data)): if data.G[i] and data.Taxonomy[i]: return(data.G[i] + " " +data.Taxonomy[i]) elif data.G[i]
df。将应用于数据帧列
df代表分层生物分类
我想根据列中是否存在数据显示相关分类。
我已经编写了一个函数,可以实现以下功能:
def condition(data):
for i in range(len(data)):
if data.G[i] and data.Taxonomy[i]:
return(data.G[i] + " " +data.Taxonomy[i])
elif data.G[i] and not data.Taxonomy[i]:
return(data.G[i])
elif not data.G[i] and not data.Taxonomy[i]:
return(data.F[i])
elif data.O[i] and not data.G[i] and not data.Taxonomy[i]:
return(data.O[i])
elif data.C[i] and not data.O[i] and not data.G[i] and not data.Taxonomy[i]:
return(data.C[i])
elif data.P[i] and not data.O[i] and not data.G[i] and not data.Taxonomy[i]:
return(data.P[i])
elif data.k[i] and not data.P[i] and not data.O[i] and not data.G[i] and not data.Taxonomy[i]:
return(data.k[i])
我尝试将此函数应用于dataframe,以输出一个附加列,该列在数据通过条件()后显示数据:
我收到了
结果本身重复,而不是每行应用函数
如何应用此函数以提供所需的输出?必须在x上应用lambda,而不是数据:
data['name']=data.apply(lambda x: condition(x), axis = 1)
而不是
data['name']=data.apply(lambda x: condition(data), axis = 1)
应用不是解决方法,请使用np查看重复链接中的第一个答案。选择
data['name']=data.apply(lambda x: condition(data), axis = 1)