Python 过滤pytrends数据,并获取数据和国家/地区列

Python 过滤pytrends数据,并获取数据和国家/地区列,python,python-3.x,Python,Python 3.x,我从谷歌趋势中提取数据,遇到了一些问题: 代码: 及 最后将其导出到csv或excel文件。检查此代码,这将以所需格式给出结果: import pandas as pd from pytrends.request import TrendReq kw_list= ['Solar power','Starlink'] l = [] for i in ['US','GB']: pytrends=TrendReq() pytrends.build_payload(kw_list,tim

我从谷歌趋势中提取数据,遇到了一些问题:

代码:


最后将其导出到csv或excel文件。

检查此代码,这将以所需格式给出结果:

import pandas as pd
from pytrends.request import TrendReq
kw_list= ['Solar power','Starlink']
l = []
for i in ['US','GB']:
    pytrends=TrendReq()
    pytrends.build_payload(kw_list,timeframe='today 3-m',geo=i)
    df=pytrends.interest_over_time()
    df['country']=i
    l.append(df.reset_index())
df1 = pd.concat(l)
df1.to_excel(r'e:\google trends\putout.xlsx')
我对您当前的代码做了以下更改:

  • 就时间范围而言,pytrends提供的选项很少,“今天100-w”不是其中之一

    • 当前时间减去时间模式:
      • 按月:“今天#-m”其中#是从该日期开始提取数据的月数,仅工作1、2、3个月
      • 每日:“now#-d”其中#是从该日期开始提取数据的天数, 只工作1、7天
      • 每小时:“现在”#-H”其中#是从该日期开始提取数据的小时数,仅工作1,4小时
    对于具体日期,我建议使用“YYYY-MM-DD YYYY-MM-DD”示例“2016-12-14 2017-01-25”

  • 您不能向geo参数提供列表,它应该是国家代码字符串,对于英国,代码为“GB”(请参阅此链接:,这将为您提供所有支持google trends的国家及其各自代码的json)


  • 代码中似乎有一些错误。pytrends.build中的第三个参数应该是列表。此外,您正在尝试导入“TrensReq”,这可能是错误的。请在您的问题中加入一个有效的代码片段。@Dseman,如果我删除了时间框架和地理位置,它工作正常,而且我还需要日期和国家/地区,那么请从问题中的代码中删除地理参数。我从您的代码中得到此错误:ImportError:无法从“pytrends.request”导入名称“TrensReq”@Dseman,在开头的第三行添加pytrends=TrendReq()。
    import pandas as pd
    from pytrends.request import TrendReq
    kw_list= ['Solar power','Starlink']
    l = []
    for i in ['US','GB']:
        pytrends=TrendReq()
        pytrends.build_payload(kw_list,timeframe='today 3-m',geo=i)
        df=pytrends.interest_over_time()
        df['country']=i
        l.append(df.reset_index())
    df1 = pd.concat(l)
    df1.to_excel(r'e:\google trends\putout.xlsx')