0
我現在有一個問題困擾着我。我已經編寫了一個函數,該函數應該根據數據幀的行值創建一個新的數據框,並根據函數中的條件填充值。我的功能看起來是這樣的:在數據框上使用pandas apply()函數創建新的數據框
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
啊,我明白這個問題。我試過你的解決方案,但它只返回一個空的數據框,列'year'和'integrase'... –