我正在使用本教程使用GDELT数据库探索Google Biguery的功能,但是sql方言处于“传统”状态,我想使用标准方言。
在传统方言中:
SELECT
theme,
COUNT(*) AS count
FROM (
SELECT
REGEXP_REPLACE(SPLIT(V2Themes,';'), r',.*',"") theme
from [gdelt-bq:gdeltv2.gkg]
where DATE>20150302000000 and DATE < 20150304000000 and V2Persons like '%Netanyahu%'
)
group by theme
ORDER BY 2 DESC
LIMIT 300
Run Code Online (Sandbox Code Playgroud)
当我尝试翻译成标准方言时:
SELECT
theme,
COUNT(*) AS count
FROM (
SELECT
REGEXP_REPLACE(SPLIT(V2Themes,';') , r',.*', " ") AS theme
FROM
`gdelt-bq.gdeltv2.gkg`
WHERE
DATE>20150302000000
AND DATE < 20150304000000
AND V2Persons LIKE '%Netanyahu%' )
GROUP BY
theme
ORDER BY
2 DESC
LIMIT
300
Run Code Online (Sandbox Code Playgroud)
它会引发以下错误:
No matching signature …Run Code Online (Sandbox Code Playgroud) 我在 Google Cloud Storage 中存储了大量图像 (.jpg),我想在 Google Colab 中使用它们。
为此我使用(在谷歌Colab中)
GCS_PATH = "gs://bucket/prefix"
!gsutil -m cp -r {GCS_PATH} ./data
Run Code Online (Sandbox Code Playgroud)
然而,在运行时,Google colab 会将每次传输打印到单元格的输出,这使我的浏览器变慢。我想知道 gsutil cp 是否有 --quiet 或 --silent 标志。我检查了gsutil help cp但找不到任何东西。
目标是仅用零替换某些列中的所有负值("capped1"和"capped2"但不是"signed").需要通过正则表达式选择列.(实际df有> 1000列,名称更复杂)
我提出了:
import pandas as pd
import re
import numpy as np
index = [1,2,3,4]
d = {'capped1': [1,0,-1,np.nan], 'capped2': [2,0,np.nan,-9999],'signed':[2,0,-3,np.nan]}
df = pd.DataFrame(data=d, index=index)
df_right = df.filter(regex=("capped.*")).clip(lower=0)
df_left = df.drop(list(df_right.columns), 1)
df_out = df_left.merge(df_right,left_index=True,right_index=True,how="outer")
df_out
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来做到这一点?我的猜测是,这可以替换为一行而不是3,直接替换df中的值.
我有一个指向文件 (.tif) 的 url,我想将该文件上传到 Amazon S3。我目前wget使用aws s3 cplinux 命令行将文件下载到 EC2 实例,然后上传到 S3 存储桶。我想知道您是否可以直接将文件(不确定正确的命名法)通过管道传输到 S3,而无需先保存到 EC2 实例。
如何在seaborn联合图中将轴设置为对数刻度?我在文档中找不到任何日志参数
import seaborn as sns
sns.jointplot(x="predictions",
y="targets",
data = calibration_data,
kind="reg",
logx=True,
)
Run Code Online (Sandbox Code Playgroud) 我正在尝试将包含仅 .0 作为小数的浮点数的列转换为整数64。我在这个论坛上找到了一些旧的答案,但它们似乎不再起作用了。最终我使用了:
df_test["column_name"] = df_test['column_name'].apply(lambda x: np.int64(x))
Run Code Online (Sandbox Code Playgroud)
我想知道这是否是 pandas 的最佳实践以及与 to_numeric()相比如何
我第一次使用Google Bigquery ML并尝试使用以下命令训练线性回归模型:
%%bigquery
CREATE OR REPLACE MODEL `sandbox.sample_lr_model`
OPTIONS
(model_type='linear_reg',
data_split_method ='no_split',
max_iterations=1) AS
SELECT
y AS label,
x AS x
FROM
`sandbox.y2018m08d01_rh_sample_dataframe_to_bq_v01_v01`
Run Code Online (Sandbox Code Playgroud)
此步骤失败,并显示以下错误消息:
ValueError: Table has no schema: call 'client.get_table()'
Run Code Online (Sandbox Code Playgroud)
但是,该模型已创建并可以查看:
该模型具有所谓的"模型模式".难道我做错了什么?
google-cloud-bigquery == 1.4.0 Python 3.5 Ubuntu
使用 PostgreSQL,我正在寻找类似SELECT GREATEST(0,x)x 可以在哪里的东西NULL。在这种情况下x IS NULL,查询应该返回NULL,类似于 MySQL 和 Google BigQuery,而不是0PostgreSQL 中的标准行为。有没有一种简单的方法可以在没有案例和条件的情况下实现这一目标?
SELECT GREATEST(0,NULL)应该返回 NULL,而不是 0
在官方文档中:
GREATEST 和 LEAST 函数从任意数量的表达式列表中选择最大值或最小值。这些表达式必须都可以转换为通用数据类型,该数据类型将是结果的类型(详细信息请参见第 10.5 节)。列表中的 NULL 值将被忽略。仅当所有表达式的计算结果均为 NULL 时,结果才会为 NULL。
请注意,GREATEST 和 LEAST 不在 SQL 标准中,而是常见的扩展。其他一些数据库使它们在任何参数为 NULL 时返回 NULL,而不是仅当所有参数均为 NULL 时才返回 NULL。
https://www.postgresql.org/docs/9.6/functions-conditional.html
我正在寻找一个不忽略 NULL 的最伟大的函数
有没有计划将PostGIS功能添加到Google BigQuery?它将成为一个非常强大的GIS分析工具,看起来很自然(除了并行化问题).
python ×4
pandas ×3
regex ×2
amazon-ec2 ×1
amazon-s3 ×1
gcloud ×1
gdelt ×1
geopandas ×1
gsutil ×1
matplotlib ×1
postgis ×1
postgresql ×1
python-3.5 ×1
seaborn ×1
sql ×1
wget ×1