亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 Pandas DataFrame 列中查找 Anagram

在 Pandas DataFrame 列中查找 Anagram

拉莫斯之舞 2023-10-31 21:41:57
給定數據框df = pd.DataFrame({'word1': ['elvis', 'lease', 'admirer'], 'word2': ['lives', 'sale', 'married']})如何添加第三列,根據同一行中的兩個單詞是否是字謎詞返回 True 或 False?我已經編寫了這個函數,當我將它應用于 df.def anagram(word1, word2):    word1_lst = [l for l in word1]    word2_lst = [i for i in word2]     return sorted(word1_lst) == sorted(word2_lst)df['Anagram'] = df.apply(anagram(df['word1'], df['word2']), axis = 1)類型錯誤:“bool”對象不可調用
查看完整描述

2 回答

?
汪汪一只貓

TA貢獻1898條經驗 獲得超8個贊

df = pd.DataFrame({'word1': ['elvis', 'lease', 'admirer'], 'word2': ['lives', 'sale', 'married']})
df['Anagram'] = df.word1.apply(sorted) == df.word2.apply(sorted)


查看完整回答
反對 回復 2023-10-31
?
繁星淼淼

TA貢獻1775條經驗 獲得超11個贊

這里的問題是您正在df.apply()使用參數進行調用

anagram(df['word1'], df['word2')這是一個布爾值,而不是一個函數

axis = 1

要修復此問題,請像這樣更改您的函數:

def anagram(row):
    word1_lst = [l for l in row['word1']]
    word2_lst = [i for i in row['word2']] 
       return sorted(word1_lst) == sorted(word2_lst)

然后用函數名調用方法,而不是結果

df['Anagram'] = df.apply(anagram, axis=1)


查看完整回答
反對 回復 2023-10-31
  • 2 回答
  • 0 關注
  • 172 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號