【发布时间】:2016-01-27 15:40:30
【问题描述】:
我有一个问题困扰了我一段时间。我编写了一个函数,它应该根据数据框的行值创建一个新的数据框,其中填充了基于函数中条件的值。我的函数如下所示:
def intI():
df_ = pd.DataFrame()
df_ = df_.fillna(0)
for index, row in Anno.iterrows():
genes=row['AR_Genes'].split(',')
df=pd.DataFrame()
if 'intI1' in genes:
df['Year']=row['Year']
df['Integrase']= 1
df_=df_.append(df)
elif 'intI2' in genes:
df['Year']=row['Year']
df['Integrase']= 1
df_=df_.append(df)
else:
df['Year']=row['Year']
df['Integrase']= 0
df_=df_.append(df)
return df_
当我这样称呼它Newdf=Anno['AR_Genes'].apply(intI()) 时,我收到以下错误:
TypeError: 'DataFrame' object is not callable
我真的不明白为什么它不起作用。我以前做过类似的事情,但似乎有一个我没有得到的区别。谁能解释这里出了什么问题?
************************编辑****************************** **
函数中的Anno 是函数将在其上运行的数据帧。它包含一个字符串,例如a,b,c,ad,c
【问题讨论】:
标签: python function pandas dataframe apply