给定数据框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)
繁星淼淼
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)
添加回答
举报
0/150
提交
取消