如何删除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
相关产品推荐
相关产品推荐

