【发布时间】:2018-03-13 14:35:54
【问题描述】:
我正在从 Google BigQuery 将数据导入 pandas 数据框,我想按日期对结果进行排序。我的代码如下:
import sys, getopt
import pandas as pd
from datetime import datetime
# set your BigQuery service account private private key
pkey ='#REMOVED#'
destination_table = 'test.test_table_2'
project_id = '#REMOVED#'
# write your query
query = """
SELECT date, SUM(totals.visits) AS Visits
FROM `#REMOVED#.#REMOVED#.ga_sessions_20*`
WHERE parse_date('%y%m%d', _table_suffix) between
DATE_sub(current_date(), interval 3 day) and
DATE_sub(current_date(), interval 1 day)
GROUP BY Date
"""
data = pd.read_gbq(query, project_id, dialect='standard', private_key=pkey, parse_dates=True, index_col='date')
date = data.sort_index()
data.info()
data.describe()
print(data.head())
我的输出如下所示,你可以看到日期没有排序。
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 3 entries, 0 to 2
Data columns (total 2 columns):
date 3 non-null object
Visits 3 non-null int32
dtypes: int32(1), object(1)
memory usage: 116.0+ bytes
date Visits
0 20180312 207440
1 20180310 178155
2 20180311 207452
我已经阅读了几个问题,到目前为止尝试了以下内容,但结果没有改变我的输出:
- 删除
index_col='date'并添加date = data.sort_values(by='date') - 将日期列设置为索引,然后对索引进行排序(如上所示)。
- 将标题 (
headers = ['Date', 'Visits']) 和 dypes (dtypes = [datetime, int]) 设置到我的 read_gbq 行 (parse_dates=True, names=headers)
我错过了什么?
【问题讨论】: