我正致力于通过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相同的数字。
提前感谢您的帮助。
答案 0 :(得分:1)
总共10000行是谷歌分析API(https://developers.google.com/analytics/devguides/reporting/core/v3/reference#maxResults)
施加的限制代码使用start_index发出多个请求并解决限制。我将此标记为熊猫中的错误:https://github.com/pydata/pandas/issues/2805 每当我有机会,我都会看看。如果你可以显示一些预期的数据与你通过大熊猫获得的数据有用。
作为一种解决方法,我建议每天迭代并发出每日请求。