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

如何用Pytrends循环实现多企业Google Trends数据自动分存CSV

Pytrends批量导出企业Google Trends数据至独立CSV文件

我用Pytrends从Google Trends采集多家企业的数据,代码能正常采集数据,但循环运行时每次都把数据写入同一个data.csv,导致每个导出的文件只包含单个企业的数据,我需要给每家企业生成独立的CSV文件。

我的代码如下:

firms = ['Gecina','Covivio','Genesis Energy','Atland','Mercury NZ','Klepierre','Electricite de France','Nexity','Veolia Environnement']

for firm in cities:
    # build model
    pytrend = TrendReq(hl='en-US')
    keywords = [firm]

    pytrend.build_payload(
       kw_list=keywords,
       cat=0,
       timeframe='2012-11-01 2017-07-02')
    data = pytrend.interest_over_time()

    data = data.drop(labels=['isPartial'],axis='columns')

    data.to_csv('data.csv')
    files.download('data.csv')

问题分析

  1. 循环变量错误:定义了企业列表firms,但循环中使用未定义的cities,会直接导致运行报错。
  2. 文件名固定:每次循环都写入同一个data.csv,后一次数据会覆盖前一次,最终导出的文件永远是最后一个企业的数据。

修正方案

  1. 修正循环变量,匹配定义的企业列表;
  2. 为每个企业生成唯一文件名,避免覆盖;
  3. 优化TrendReq实例创建,提升运行效率。

修改后的完整代码

from pytrends.request import TrendReq
# 若使用Colab环境,需导入files模块
# from google.colab import files

firms = ['Gecina','Covivio','Genesis Energy','Atland','Mercury NZ','Klepierre','Electricite de France','Nexity','Veolia Environnement']

# 仅初始化一次TrendReq实例,无需循环重复创建
pytrend = TrendReq(hl='en-US')

for firm in firms:
    keywords = [firm]
    pytrend.build_payload(
       kw_list=keywords,
       cat=0,
       timeframe='2012-11-01 2017-07-02')
    data = pytrend.interest_over_time()

    # 检查数据非空,避免无数据时执行drop报错
    if not data.empty:
        data = data.drop(labels=['isPartial'], axis='columns')
        # 生成专属文件名,替换空格为下划线避免路径问题
        filename = f"{firm.replace(' ', '_')}_trends.csv"
        data.to_csv(filename)
        files.download(filename)

关键说明

  • 将TrendReq初始化移至循环外,减少重复实例创建的开销;
  • 用firm.replace(' ', '_')处理企业名称中的空格,生成格式统一的文件名(如Genesis_Energy_trends.csv);
  • 增加数据非空检查,避免部分企业无趋势数据时触发报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 20:55:10