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

使用pandas提取推特文本中hashtag出现TypeError报错如何解决

报错原因与解决方法

报错核心原因

你遇到的TypeError: string indices must be integers报错,本质是pd.read_csv()读取csv文件时,entities字段原本是JSON结构的推特元数据,读取后会被默认解析为字符串类型,无法直接用字典的键索引语法(x['hashtags'])取值。同时你给出的读取csv的代码还缺了右括号,也会导致语法错误。

解决代码

基础可用版本

首先导入json模块,将字符串格式的entities转为Python字典后再提取字段:

import pandas as pd
import json

# 补全读取csv的右括号
df = pd.read_csv('tw_climate_.csv')

# 先转json再提取hashtag
df['hashtags'] = df['entities'].map(lambda x: [i['text'] for i in json.loads(x)['hashtags']])

稳健兼容版本

如果数据集中存在空值、entities格式异常的行,可以加异常处理避免运行中断,没有合法hashtag的行默认返回空列表:

import pandas as pd
import json

def extract_hashtags(entities_str):
    try:
        entities = json.loads(entities_str)
        return [i['text'] for i in entities.get('hashtags', [])]
    except:
        return []

df = pd.read_csv('tw_climate_.csv')
df['hashtags'] = df['entities'].map(extract_hashtags)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 04:15:09