gpt4 book ai didi

python - Google Analytics 数据到 Pandas Dataframe

转载 作者:太空宇宙 更新时间:2023-11-03 19:51:05 24 4
gpt4 key购买 nike

我正在尝试使用谷歌分析 API 将谷歌分析数据发送到 pandas 数据框。我已经按照官方文档中提供的代码示例进行操作,现在我有了可以打印出我需要的数据的代码。我需要帮助弄清楚如何将数据发送到 pandas 数据框,而不是仅仅将其打印出来。

执行查询后,这是我得到的原始输出:

{'kind': 'analytics#gaData', 'id': 'https://www.googleapis.com/analytics/v3/data/ga?ids=ga:XXXXXXX&dimensions=ga:date&metrics= ga:sessions,ga:transactions&start-date=7daysAgo&end-date=today', 'query': {'start-date': '7daysAgo', 'end-date': '今天', 'ids': 'ga:XXXXXXX ', 'dimensions': 'ga:date', 'metrics': ['ga:sessions', 'ga:transactions'], 'start-index': 1, 'max-results': 1000}, 'itemsPerPage' : 1000, 'totalResults': 8, 'selfLink': 'https://www.googleapis.com/analytics/v3/data/ga?ids=ga:XXXXXXX&dimensions=ga:date&metrics=ga:sessions,ga:transactions&start- date=7daysAgo&end-date=today', 'profileInfo': {'profileId': 'XXXXXXX', 'accountId': 'XXXXXXX', 'webPropertyId': 'XXXXXXX', 'internalWebPropertyId': 'XXXXXXX', 'profileName': 'XXXXXXX','tableId':'ga:XXXXXXX'},'containsSampledData':False,'columnHeaders':[{'name':'ga:date','columnType':'DIMENSION','dataType':' STRING'}, {'name': 'ga:sessions', 'columnType': 'METRIC', 'dataType': 'INTEGER'}, {'name': 'ga:transactions', 'columnType': 'METRIC' , 'dataType': 'INTEGER'}], 'totalsForAllResults': {'ga:sessions': '86913', 'ga:transactions': '312'}, 'rows': [['20200114', '11965' ,'41'],['20200115','11052','51'],['20200116','11396','38'],['20200117','11097','28'],[' 20200118', '10490', '46'], ['20200119', '9829', '34'], ['20200120', '12280', '36'], ['20200121', '8804', ' 38']]}

谷歌文档使用此函数在打印语句中输出此数据:

def print_results(results):

# Print header.
output = []
for header in results.get('columnHeaders'):
output.append('%30s' % header.get('name'))
print(''.join(output))

# Print data table.
if results.get('rows', []):
for row in results.get('rows'):
output = []
for cell in row:
output.append('%30s' % cell)
print(''.join(output))
else:
print('No Rows Found')

如您所见,我们需要捕获 results[columnHeaders][name] 作为列标题,并且需要捕获 results[rows] 作为数据需要输入 pandas 数据框。

如何创建一个函数来将此数据放入数据框中?

最佳答案

尝试下面的代码:

import pandas as pd
results = {'kind': 'analytics#gaData', 'id': 'https://www.googleapis.com/analytics/v3/data/ga?ids=ga:XXXXXXX&dimensions=ga:date&metrics=ga:sessions,ga:transactions&start-date=7daysAgo&end-date=today', 'query': {'start-date': '7daysAgo', 'end-date': 'today', 'ids': 'ga:XXXXXXX', 'dimensions': 'ga:date', 'metrics': ['ga:sessions', 'ga:transactions'], 'start-index': 1, 'max-results': 1000}, 'itemsPerPage': 1000, 'totalResults': 8, 'selfLink': 'https://www.googleapis.com/analytics/v3/data/ga?ids=ga:XXXXXXX&dimensions=ga:date&metrics=ga:sessions,ga:transactions&start-date=7daysAgo&end-date=today', 'profileInfo': {'profileId': 'XXXXXXX', 'accountId': 'XXXXXXX', 'webPropertyId': 'XXXXXXX', 'internalWebPropertyId': 'XXXXXXX', 'profileName': 'XXXXXXX', 'tableId': 'ga:XXXXXXX'}, 'containsSampledData': False, 'columnHeaders': [{'name': 'ga:date', 'columnType': 'DIMENSION', 'dataType': 'STRING'}, {'name': 'ga:sessions', 'columnType': 'METRIC', 'dataType': 'INTEGER'}, {'name': 'ga:transactions', 'columnType': 'METRIC', 'dataType': 'INTEGER'}], 'totalsForAllResults': {'ga:sessions': '86913', 'ga:transactions': '312'}, 'rows': [['20200114', '11965', '41'], ['20200115', '11052', '51'], ['20200116', '11396', '38'], ['20200117', '11097', '28'], ['20200118', '10490', '46'], ['20200119', '9829', '34'], ['20200120', '12280', '36'], ['20200121', '8804', '38']]}

def print_results(results):
column_names = []
for header in results.get('columnHeaders'):
column_names.append(header.get('name'))
data = results.get('rows')
create_dataframe(data, column_names)

def create_dataframe(data, column_names):
df = pd.DataFrame(data, columns = column_names)
#prints the dataframe
print(df)

print_results(results)

#output
ga:date ga:sessions ga:transactions
0 20200114 11965 41
1 20200115 11052 51
2 20200116 11396 38
3 20200117 11097 28
4 20200118 10490 46
5 20200119 9829 34
6 20200120 12280 36
7 20200121 8804 38


关于python - Google Analytics 数据到 Pandas Dataframe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59840150/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com