Skip to content

Commit f5fc92e

Browse files
author
Dinesh
committed
added additional params to interest_by_region
- to fetch data for low volume countries - option to include ISO codes in the dataframe
1 parent 5e4056d commit f5fc92e

File tree

2 files changed

+19
-3
lines changed

2 files changed

+19
-3
lines changed

README.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,7 @@ Returns pandas.Dataframe
203203

204204
### Interest by Region
205205

206-
pytrends.interest_by_region(resolution='COUNTRY')
206+
pytrends.interest_by_region(resolution='COUNTRY', inc_low_vol=True, inc_geo_code=False)
207207

208208
Parameters
209209

@@ -214,6 +214,14 @@ Parameters
214214
- 'DMA' returns Metro level data
215215
- 'REGION' returns Region level data
216216

217+
* `inc_low_vol`
218+
219+
- True/False (includes google trends data for low volume countries/regions as well)
220+
221+
* `inc_geo_code`
222+
223+
- True/False (includes ISO codes of countries along with the names in the data)
224+
217225
Returns pandas.DataFrame
218226

219227
<sub><sup>[back to top](#interest_by_region)</sub></sup>

pytrends/request.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@ def interest_over_time(self):
198198

199199
return final
200200

201-
def interest_by_region(self, resolution='COUNTRY'):
201+
def interest_by_region(self, resolution='COUNTRY', inc_low_vol=True, inc_geo_code=False):
202202
"""Request data from Google's Interest by Region section and return a dataframe"""
203203

204204
# make the request
@@ -207,6 +207,9 @@ def interest_by_region(self, resolution='COUNTRY'):
207207
self.interest_by_region_widget['request']['resolution'] = resolution
208208
elif self.geo == 'US' and resolution in ['DMA', 'CITY', 'REGION']:
209209
self.interest_by_region_widget['request']['resolution'] = resolution
210+
211+
self.interest_by_region_widget['request']['includeLowSearchVolumeGeos'] = inc_low_vol
212+
210213
# convert to string as requests will mangle
211214
region_payload['req'] = json.dumps(self.interest_by_region_widget['request'])
212215
region_payload['token'] = self.interest_by_region_widget['token']
@@ -222,14 +225,19 @@ def interest_by_region(self, resolution='COUNTRY'):
222225
df = pd.DataFrame(req_json['default']['geoMapData'])
223226
if (df.empty):
224227
return df
228+
225229
# rename the column with the search keyword
226-
df = df[['geoName', 'value']].set_index(['geoName']).sort_index()
230+
df = df[['geoName', 'geoCode', 'value']].set_index(['geoName']).sort_index()
227231
# split list columns into seperate ones, remove brackets and split on comma
228232
result_df = df['value'].apply(lambda x: pd.Series(str(x).replace('[', '').replace(']', '').split(',')))
233+
if inc_geo_code:
234+
result_df['geoCode'] = df['geoCode']
235+
229236
# rename each column with its search term
230237
for idx, kw in enumerate(self.kw_list):
231238
result_df[kw] = result_df[idx].astype('int')
232239
del result_df[idx]
240+
233241
return result_df
234242

235243
def related_topics(self):

0 commit comments

Comments
 (0)