【问题标题】:How to parse Google Ads batch stream into pandas dataframe?如何将 Google Ads 批处理流解析为 pandas 数据框?
【发布时间】:2021-08-05 16:43:07
【问题描述】:

我在解析来自我的 Google Ads 请求的批处理响应时遇到问题。 我能够得到如下所示的 json 响应:

    results {
  metrics {
    clicks: 200
    conversions_value: 5
    conversions: 40
    cost_micros: 4546564
    impressions: 1235
  }
  segments {
    date: "2021-08-03"
  }
  landing_page_view {
    resource_name: "first"
    unexpanded_final_url: "https://www.soomething.com/find"
  }
}
results {
  metrics {
    clicks: 1000
    conversions_value: 10
    conversions: 65
    cost_micros: 654654
    impressions: 8154
  }
  segments {
    date: "2021-08-02"
  }
  landing_page_view {
    resource_name: "customer"
    unexpanded_final_url: "https://www.soomething.com/find"
  }
}

这是我迄今为止尝试过的:

response = ga_service.search_stream(customer_id=customer_id, query=query)
df = pd.DataFrame()
for batch in response:
    for row in batch.results:
        df= pd.DataFrame({"Date": row.segments.date,
                          "Landing page": row.landing_page_view.unexpanded_final_url,
                          "clicks": row.metrics.clicks,
                          "conversions": row.metrics.conversions,
                          "conversion value": row.metrics.conversions_value,
                          "costs": row.metrics.cost_micros ,
                          "impressions": row.metrics.impressions},index=[0])
        final = df.append(df)

final

但结果看起来只是数据框中的一行数据,而不是 7 天的数据。

但如果我执行 print(batch),我会得到上面提到的 json 格式的响应。

如何将 json 中的所有数据解析成数据框?

提前谢谢你

【问题讨论】:

    标签: python python-3.x pandas


    【解决方案1】:

    您的方法是直截了当的,但您将新行附加到 df 而不是最终数据帧中:

    这样做:

    final = final.append(df).reset_index(drop=True)
    

    而不是这个:

    final = df.append(df)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-08-04
      • 2020-11-29
      • 1970-01-01
      • 2020-01-24
      • 1970-01-01
      • 2019-02-21
      • 2016-04-20
      相关资源
      最近更新 更多