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)