You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

pandas DataFrame使用apply()时出现'list'无map属性报错如何解决?

问题排查:pandas apply调用抛出AttributeError: 'list' object has no attribute 'map'

错误根因

调用DataFrame.apply(..., axis=1)时,传入自定义函数的参数是单行对应的pandas Series对象,而非完整DataFrame。此时取email['POS_Tag']拿到的是该行存储的列表本身,列表没有map方法,因此抛出属性错误。
你之前手动逐行运行代码正常,是因为当时操作的是整个DataFrame的POS_Tag列,该列属于Series类型,本身支持map方法,逻辑可正常执行。

解决方案

推荐直接对全量DataFrame处理,不需要逐行apply,执行效率更高,代码如下:

import pandas as pd
from collections import Counter

# 直接对全量POS_Tag列统计词性计数
tag_count_data = pd.DataFrame(emails['POS_Tag'].map(lambda x: Counter(tag[1] for tag in x)).to_list())
emails = pd.concat([emails, tag_count_data], axis=1).fillna(0)

pos_columns = ['PRP','MD','JJ','JJR','JJS','RB','RBR','RBS', 'NN', 'NNS','VB', 'VBS', 'VBG','VBN','VBP','VBZ']
for pos in pos_columns:
    if pos not in emails.columns:
        emails[pos] = 0

emails = emails[['text'] + pos_columns]

emails['Adjectives'] = emails['JJ'] + emails['JJR'] + emails['JJS']
emails['Adverbs'] = emails['RB'] + emails['RBR'] + emails['RBS']
emails['Nouns'] = emails['NN'] + emails['NNS']
emails['Verbs'] = emails['VB']  + emails['VBS'] + emails['VBG']  + emails['VBN'] + emails['VBP'] + emails['VBZ'] 

如果必须保留apply的使用方式,可调整自定义函数适配单行输入,代码如下:

import pandas as pd
from collections import Counter

def extractGrammar(email):
    # 直接统计当前行的词性计数
    tag_counter = Counter(tag[1] for tag in email['POS_Tag'])
    res = email.to_dict()
    res.update(tag_counter)
    
    # 补全缺失的词性列
    pos_columns = ['PRP','MD','JJ','JJR','JJS','RB','RBR','RBS', 'NN', 'NNS','VB', 'VBS', 'VBG','VBN','VBP','VBZ']
    for pos in pos_columns:
        res[pos] = res.get(pos, 0)
    
    # 计算四类词性总和
    res['Adjectives'] = res['JJ'] + res['JJR'] + res['JJS']
    res['Adverbs'] = res['RB'] + res['RBR'] + res['RBS']
    res['Nouns'] = res['NN'] + res['NNS']
    res['Verbs'] = res['VB'] + res['VBS'] + res['VBG'] + res['VBN'] + res['VBP'] + res['VBZ']
    return pd.Series(res)

emails = emails.apply(extractGrammar, axis=1)

内容的提问来源于stack exchange,提问作者deLaJU

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 06:18:03