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

如何删除CSV文件中包含无效tweet id的对应行

清理无效Tweet ID的Python实现代码

首先提前准备好Twitter开发者平台的4个核心凭证:API Key、API Secret、Access Token、Access Token Secret。

先安装依赖库:

pip install pandas tweepy

完整实现代码:

import pandas as pd
import tweepy

# 替换为自己的开发者凭证
API_KEY = "你的API Key"
API_SECRET = "你的API Secret"
ACCESS_TOKEN = "你的Access Token"
ACCESS_TOKEN_SECRET = "你的Access Token Secret"

# 初始化Twitter客户端,开启自动等待速率限制
client = tweepy.Client(
    consumer_key=API_KEY,
    consumer_secret=API_SECRET,
    access_token=ACCESS_TOKEN,
    access_token_secret=ACCESS_TOKEN_SECRET,
    wait_on_rate_limit=True
)

def get_valid_tweet_ids(id_list):
    valid_ids = set()
    # Twitter API单次最多查询100个ID,分批处理减少调用次数
    for i in range(0, len(id_list), 100):
        batch = id_list[i:i+100]
        try:
            response = client.get_tweets(ids=batch)
            if response.data:
                valid_ids.update([str(tweet.id) for tweet in response.data])
        except Exception as e:
            print(f"处理批次{i//100 + 1}时出错: {str(e)}")
    return valid_ids

if __name__ == "__main__":
    # 读取CSV,注意tweet_id列必须按字符串读取,避免长ID的浮点数精度丢失
    df = pd.read_csv("你的旧数据集路径.csv", dtype={"tweet_id": str})
    # 替换为你CSV里对应的tweet ID列名
    all_tweet_ids = df["tweet_id"].tolist()
    
    valid_ids = get_valid_tweet_ids(all_tweet_ids)
    # 过滤仅保留含有效ID的行
    df_valid = df[df["tweet_id"].isin(valid_ids)]
    # 输出清理后的新CSV
    df_valid.to_csv("清理后有效数据集.csv", index=False, encoding="utf-8-sig")
    print(f"清理完成:原数据共{len(df)}行,保留有效行{len(df_valid)}行")
  • 请把代码里的凭证、CSV路径、tweet ID对应的列名替换为你自己的实际内容
  • wait_on_rate_limit=True参数会自动适配API的调用频次限制,无需手动编写等待逻辑
  • 除了ID本身无效的情况,账号设为私密、推文被删除、账号封禁等场景都会被判定为不可用,对应行会被移除
  • 如果数据集体量极大,可以在分批处理时增加断点保存逻辑,避免中途出错需要重头运行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 22:36:03