我正在通过pandas和 Google Analytics API 自动化一些报告。当请求分割数据的多个维度时,生成的记录集远高于 pandas 施加的默认 10k max_result 限制。
为了解决这个问题,我为 max_results 参数传递了一个大数字并指定了一个块大小。我的意图是然后迭代生成的生成器以创建一个大型 DataFrame,我可以在其上执行所有操作。
from pandas.io import ga
import pandas as pd
max_results = 1000000
chunks = ga.read_ga(metrics=["visits"],
dimensions=["date", "browser", "browserVersion",
"operatingSystem", "operatingSystemVersion",
"isMobile", "mobileDeviceInfo"],
start_date="2012-12-01",
end_date="2012-12-31",
max_results=max_results,
chunksize=5000)
stats = pd.concat([chunk for chunk in chunks])
stats.groupby(level="date").sum()
但是,很明显,由于每日总访问量与 Google Analytics(分析)不匹配,因此并未提取某些记录。
仅选择几个维度时,我不会遇到此问题。例如 ...
test = ga.read_ga(metrics=["visits"], dimensions=["date"],
start_date="2012-12-01", end_date="2012-12-31")
test.groupby(level="date").sum()
...产生与谷歌分析相同的数字。
在此先感谢您的帮助。