使用chunksize丢失记录 - Pandas和Google AnalyticsAPI集成

时间:2013-02-04 22:15:48

标签: python google-analytics pandas google-analytics-api

我正致力于通过pandas和Google AnalyticsAPI自动生成一些报告。在请求拆分数据的多个维度时,生成的记录集远远高于pandas强加的默认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()

但是,显然有些记录没有被提取,因为每日总访问次数与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()

...生成与Google Analytics相同的数字。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

总共10000行是谷歌分析API(https://developers.google.com/analytics/devguides/reporting/core/v3/reference#maxResults

施加的限制

代码使用start_index发出多个请求并解决限制。我将此标记为熊猫中的错误:https://github.com/pydata/pandas/issues/2805 每当我有机会,我都会看看。如果你可以显示一些预期的数据与你通过大熊猫获得的数据有用。

作为一种解决方法,我建议每天迭代并发出每日请求。