#python #iteration
#python #итерация
Вопрос:
итак, я использую этот код, чтобы получить частоту искомых слов в Google Trends:
import pandas as pd
from pytrends.request import TrendReq
pytrend = TrendReq(hl='en-US', tz=360)
keywords = ['Python', 'R']
pytrend.build_payload(
kw_list=keywords,
cat=0,
timeframe='today 3-m',
geo='TW',
gprop='')
data = pytrend.interest_over_time()
data= data.drop(labels=['isPartial'],axis='columns')
image = data.plot(title = 'Python V.S. R in last 3 months on Google Trends ')
fig = image.get_figure()
fig.savefig('figure.png')
data.to_csv('Py_VS_R.csv', encoding='utf_8_sig')
в результате получается такая таблица, показывающая частоту каждого дня:
Python R
date
2017-10-23 3 1
2017-10-24 1 2
2017-10-25 5 1
2017-10-26 3 4
2017-10-27 1 5
2017-10-28 2 1
но я хочу, чтобы каждое значение столбца суммировалось друг с другом, например:
Python R
date
2017-10-23 3 1
2017-10-24 4 3
2017-10-25 9 4
2017-10-26 12 8
2017-10-27 13 13
2017-10-28 15 14
так что последнее значение строки столбца будет общим числом.
Каков наилучший способ сделать это? Могу ли я достичь этого с помощью Py Trends?
Или мне нужно написать отдельный код?
Заранее спасибо!
Ответ №1:
Предполагая, что остальная часть кода верна, вы можете получить совокупную сумму, просто используя метод cumsum() pandas в качестве data.cumsum()
import pandas as pd
from pytrends.request import TrendReq
pytrend = TrendReq(hl='en-US', tz=360)
keywords = ['Python', 'R']
pytrend.build_payload(
kw_list=keywords,
cat=0,
timeframe='today 3-m',
geo='TW',
gprop='')
data = pytrend.interest_over_time()
data= data.drop(labels=['isPartial'],axis='columns')
data = data.cumsum()
image = data.plot(title = 'Python V.S. R in last 3 months on Google Trends ')
fig = image.get_figure()
fig.savefig('figure.png')
data.to_csv('Py_VS_R.csv', encoding='utf_8_sig')
Комментарии:
1. ты мужик, большое спасибо! 🙂 работал как задумано