不知道为啥列返回零

Posted

技术标签:

【中文标题】不知道为啥列返回零【英文标题】:Not sure why columns return zero不知道为什么列返回零 【发布时间】:2020-10-10 23:59:28 【问题描述】:

这是我尝试使用 python 的第一周。你会注意到我的问题,我是初学者,这可能是一个非常愚蠢的问题。

我正在尝试使用谷歌趋势并改进代码以获得一些自动化结果。我有两个代码,第一个工作完美。在第二个中,我决定在 .txt 文件中创建一个列表。它正在读取列表,但由于某种原因,谷歌趋势仅返回第一个关键字的数据(它在以下各列中填充为零)。

代码 1 - 工作正常

import pytrends
from pytrends.request import TrendReq
import pandas as pd
import time
import datetime
from datetime import datetime, date, time

pytrend = TrendReq()

searches = ['detox', 'water fasting', 'benefits of fasting', 'fasting benefits',
'acidic', 'water diet', 'ozone therapy', 'colon hydrotherapy', 'water fast']

groupkeywords = list(zip(*[iter(searches)]*1))
groupkeywords = [list(x) for x in groupkeywords]

dicti = 
i = 1
for trending in groupkeywords:
    pytrend.build_payload(trending, timeframe = 'today 3-m', geo = 'GB')
    dicti[i] = pytrend.interest_over_time()
    i+=1

result = pd.concat(dicti, axis=1)
result.columns = result.columns.droplevel(0)
result = result.drop('isPartial', axis = 1)
result.reset_index(level=0, inplace=True)
print(result)

代码 2 - 不起作用。我在与代码相同的文件夹中创建了一个 txt 文件“test”。

这是2个代码:

import pytrends
from pytrends.request import TrendReq
import pandas as pd
import time
import datetime
import sys
from datetime import datetime, date, time

pytrend = TrendReq()

file = open('test.txt','r')
f = file.readlines()
file.close()

searches = []
for line in f:
    searches.append(line.strip())
    
groupkeywords = list(zip(*[iter(searches)]*len(searches)))
groupkeywords = [list(x) for x in groupkeywords]

dicti = 
i = 1
for trending in groupkeywords:
    pytrend.build_payload(trending, timeframe = 'today 3-m', geo = 'GB')
    dicti[i] = pytrend.interest_over_time()
    i+=1

result = pd.concat(dicti, axis=1)
result.columns = result.columns.droplevel(0)
result = result.drop('isPartial', axis = 1)
result.reset_index(level=0, inplace=True)
print(result)

在尝试了很多不同的事情之后,我意识到即使是第一个代码在我更改单词时(在搜索中)也不起作用。下面的例子不起作用:

searches = ['Casillero del Diablo', 'Don Melchor', 'Marques de Casa Concha', 'CdD Reserva Especial', 'Cono Sur Organico']

【问题讨论】:

【参考方案1】:

根据问题,我们看到的第一件事是您不需要在文本文件中提供''中的文本。

我的意见:

detox,
water fasting,
benefits of fasting,
fasting benefits,
acidic,
water diet,
ozone therapy,
colon hydrotherapy,
water fast

其次,您需要在分隔符上拆分行并将其附加到搜索中。

searches = []
for line in f:
    searches.append(line.split(',')[0])

这是确保搜索数组符合要求:

输出:

Out[13]: 
['detox',
 'water fasting',
 'benefits of fasting',
 'fasting benefits',
 'acidic',
 'water diet',
 'ozone therapy',
 'colon hydrotherapy',
 'water fast']

【讨论】:

您好,感谢您的帮助。我做了修改,但没有奏效。我仍然在不是第一个的其他列中得到零。还有其他建议吗? 当你说“我仍然在其他列中得到零而不是第一个”时,我没有听懂你的意思。你能解释一下吗? 好的,我会打印输出并粘贴到这里(在主要问题中) @Digs 我对你的问题感到困惑。你想达到什么目的?

以上是关于不知道为啥列返回零的主要内容,如果未能解决你的问题,请参考以下文章

实体框架返回零结果

Paypal IPN 无效返回,不知道为啥

查询给出错误的结果。知道为啥会这样吗?

获取列及其索引的非零最小值

我正在尝试登录并检查用户是不是存在,但我的执行标量一直返回 null,我不知道为啥?

为啥 Swift 零合并三元运算符不返回未包装类型?