Skip to content

Instantly share code, notes, and snippets.

@seonews-ru
seonews-ru / gist:351d9226502ce5b9875ea32b73a9a9c5
Created December 30, 2018 14:50
Как использовать Google BigQuery с помощью Python
for schema_field in table.schema: # Для каждого поля в схеме
print (schema_field) # Печатаем поле схемы
print(table.num_rows) # Отображаем количество строк в таблице
@seonews-ru
seonews-ru / gist:b9b1b2ae3d3e63eda865d4193f0b4337
Created December 30, 2018 14:49
Как использовать Google BigQuery с помощью Python
table = client.get_table(table_ref) # Получаем данные о таблице
table.description = 'Моя таблица' # Задаем новый дескрипшн для таблицы
table = client.update_table(table, ['description']) # Обновляем таблицу, передав новый дескрипшн через API
print(table.description)
@seonews-ru
seonews-ru / gist:bd1bbf357f972198d4eb13d039d02015
Created December 30, 2018 14:48
Как использовать Google BigQuery с помощью Python
# Создаем тестовый dataframe
df = pd.DataFrame(
{
'my_string': ['a', 'b', 'c'],
'my_int64': [1, 2, 3],
'my_float64': [4.0, 5.0, 6.0],
}
)
dataset_ref = client.dataset('my_dataset_2') # Определяем датасет
dataset = bigquery.Dataset(dataset_ref)
@seonews-ru
seonews-ru / gist:5f553a7568af84ca6a5094e1ddf22f24
Created December 30, 2018 14:47
Как использовать Google BigQuery с помощью Python
from google.cloud import bigquery
client = bigquery.Client.from_service_account_json(
'/home/makarov/notebooks/my-bq-project-225910-6e534ba48078.json')
sql = '''
SELECT DATE(creation_date) as date, DATE_TRUNC(DATE(creation_date), MONTH) as month, DATE_TRUNC(DATE(creation_date), YEAR) as year, COUNT(id) as questions
FROM
`bigquery-public-data.stackoverflow.posts_questions`
WHERE tags LIKE '%pandas%'
@seonews-ru
seonews-ru / gist:5d68d77b087fa5ce46f4963ecd68d0ae
Created December 30, 2018 14:46
Как использовать Google BigQuery с помощью Python
year_stats.to_gbq('my_dataset.my_table', project_id=project_id, if_exists='fail', private_key='my-bq-project-225910-6e534ba48078.json')
@seonews-ru
seonews-ru / gist:c784e75acf639d5d854c54ee7e1c1d88
Created December 30, 2018 14:46
Как использовать Google BigQuery с помощью Python
year_stats.columns = ['year','mean_questions','sum_questions','estimate']
@seonews-ru
seonews-ru / gist:aad1233296e9f412f3fb109b24415129
Created December 30, 2018 14:29
Как использовать Google BigQuery с помощью Python
year_stats['estimate'] = year_stats[('questions','mean')]*12
display(year_stats)
@seonews-ru
seonews-ru / gist:c54a9d2c1397a70cd8daae19151f6b5e
Created December 30, 2018 14:29
Как использовать Google BigQuery с помощью Python
year_stats = stats[(stats.month >= '2013-01-01') & (stats.month < '2018-09-01')].groupby(['year'],as_index=False).agg({'questions':['mean','sum']})
display(year_stats)
@seonews-ru
seonews-ru / gist:227430d6efba0e4f7312155f485a0798
Created December 30, 2018 14:28
Как использовать Google BigQuery с помощью Python
stats = df.groupby(['year','month'],as_index=False).agg({'questions':'sum'}) # Группируем данные по году и месяцу, используя в качестве агрегирующей функции сумму количества вопросов
display(stats.sort_values('questions',ascending=False).head(5))
@seonews-ru
seonews-ru / gist:a31a41bf6d1a4da10311bb9a49460f32
Created December 30, 2018 14:27
Как использовать Google BigQuery с помощью Python
df['month'] = df['date'].values.astype('datetime64[M]') # Создаем новый столбец с месяцем
df['year'] = df['date'].values.astype('datetime64[Y]') # Создаем новый столбец с годом
# Отображаем один день с максимальным количеством вопросов
display(df.sort_values('questions',ascending=False).head(1))