缺少使用chunksize的记录-Pandas和Google Analytics API集成



我正在通过panda和Google Analytics API实现一些报告的自动化。当请求多个维度来划分数据时,得到的记录集远高于Panda规定的默认10k max_result限制。

为了解决这个问题,我为max_results参数传递了一个大数字,并指定了一个chunksize。我的意图是对生成的生成器进行迭代,以创建一个大型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()

然而,很明显,由于每日访问总量与谷歌分析不匹配,一些记录没有被提取。

当我只选择几个尺寸时,不会遇到这个问题。例如。。。

test = ga.read_ga(metrics=["visits"], dimensions=["date"],
            start_date="2012-12-01", end_date="2012-12-31")
test.groupby(level="date").sum()

产生与谷歌分析相同的数字。

提前感谢您的帮助。

10000行是google analytics API的限制(https://developers.google.com/analytics/devguides/reporting/core/v3/reference#maxResults)

该代码使用start_index来发出多个请求并绕过限制。我把它标记为熊猫身上的虫子:https://github.com/pydata/pandas/issues/2805我一有机会就去看看。如果你能展示一些预期的数据与你通过熊猫获得的数据,那将是有帮助的。

作为一种变通方法,我建议每天迭代并提出一个每日请求。

最新更新