小编isk*_*lue的帖子

Presto 中的压缩阵列

array_agg()我有一个查询,使用它们的函数生成数组字符串

SELECT 
array_agg(message) as sequence
from mytable
group by id
Run Code Online (Sandbox Code Playgroud)

它会生成一个如下所示的表:

                 sequence
1 foo foo bar baz bar baz
2     foo bar bar bar baz
3 foo foo foo bar bar baz
Run Code Online (Sandbox Code Playgroud)

但我的目标是压缩字符串数组,以便没有一个字符串可以连续重复多次,例如,所需的输出如下所示:

    sequence
1 foo bar baz bar baz
2 foo bar baz
3 foo bar baz
Run Code Online (Sandbox Code Playgroud)

如何使用 Presto SQL 来做到这一点?

sql presto

10
推荐指数
1
解决办法
1万
查看次数

ggplot:离散 x 轴的线图

我有下表,但经过多次尝试无法绘制数据,以便 x 轴刻度线与year. 我找到了箱线图的解决方案,但不适用于geom_line()

我怎样才能制作一年的离散标签?

以下解决方案不起作用

g + scale_x_discrete(limits=c("2013","2014","2015"))
g + scale_x_discrete(labels=c("2013","2014","2015"))
Run Code Online (Sandbox Code Playgroud)
distance_of_moves
  距离移动年
1 2.914961 2013
2 2.437516 2014
3 2.542500 2015

ggplot(data = distance_of_moves, aes(x = year, y = `distancemoved`, group = 1)) +
 geom_line(color = "red", linetype = "dashed", size = 1.5) +
 geom_point(color = "red", size = 4, shape = 21, fill = "white") + 
 ylab("平均移动距离") + 
 xlab("年") 

在此处输入图片说明

r ggplot2

7
推荐指数
1
解决办法
1万
查看次数

Geopandas 多边形到线

我是 geopandas 新手,只想绘制多边形的轮廓,类似于ST_Boundary()PostGIS 中的功能

我有一个states包含每个州的多边形的地理数据框

states = counties.dissolve(by='STATEFP')
Run Code Online (Sandbox Code Playgroud)

当我按一个状态进行子集化时,我可以绘制该状态:

states.loc[states.index.isin(['06'])]['geometry']
Run Code Online (Sandbox Code Playgroud)

我只对轮廓感兴趣,但文档中尚不清楚如何将多边形转换为线几何形状。或另一个空间库中是否有有用的方法geopandas可以帮助将多边形转换为线串?

在此输入图像描述

python plot postgis spatial geopandas

7
推荐指数
1
解决办法
4810
查看次数

两个 POSIXct 时间之间的中点

我想获取 和 之间的子午线或中点stoptimestarttime然后添加带有中点的新列。它可以四舍五入到最接近的秒。在 R 中如何做到这一点?和stoptime都是starttimePOSIXct 形式。有没有比除以difftime两半然后相加更简单的方法stoptime

> 头(数据)
   bikeid end.station.id start.station.id diff.time 停止时间 开始时间
24 23966 359 318 1505 2015-10-13 07:45:00 2015-10-13 08:10:05
28 23966 502 311 2072 2015-10-20 14:41:11 2015-10-20 15:15:43
58 17110 337 340 3338 2015-10-15 16:00:39 2015-10-15 16:56:17
74 23822 501 527 3478 2015-10-05 15:55:13 2015-10-05 16:53:11
83 16462 426 146 3368 2015-10-01 07:52:06 2015-10-01 08:48:14
89 23121 435 223 1499 2015-10-08 11:58:08 2015-10-08 12:23:07 …

posix r

6
推荐指数
1
解决办法
2958
查看次数

使用jq获取特定键值对

在下面的示例 json 中,我可以使用以下命令过滤费用为空的记录jq -M ' map(select(.charge == null)) '

  [
    {
      "id": 1,
      "name": "vehicleA",
      "state": "available",
      "charge": 100
    },
    {
      "id": 2,
      "name": "vehicleB",
      "state": "available",
    },
    {
      "id": 3,
      "name": "vehicleB",
      "state": "available",
      "charge": 50
    }
  ]
Run Code Online (Sandbox Code Playgroud)

返回:

{
  "id": 2,
  "name": "vehicleB",
  "state": "available",
}
Run Code Online (Sandbox Code Playgroud)

如何仅获取id与过滤记录关联的值id,以便将此步骤添加到上述查询中将返回2

bash json jq

6
推荐指数
2
解决办法
2万
查看次数

传单中 geojson 点的热图

我正在尝试使用传单的热图插件从点的特征集合创建一个简单的热图。从 ajax 调用成功获取 json 数据后,我创建一个空的 coords 数组并推送每个要素的坐标。

但是,此方法不起作用,geojson2heat函数也不起作用。控制台中没有错误。我做错了什么,有人知道解决方法吗?

var map = L.map('map').setView([50.0647, 19.9450], 12);

var tiles = L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {
    attribution: '&copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors',
}).addTo(map);
var geojsonLayer = new L.GeoJSON.AJAX("newmap.geojson");

coords = [];

function onEachFeature(feature, layer) {
            coords.push(feature.geometry.coordinates);

};

L.GeoJSON(geojsonLayer, {
    onEachFeature: onEachFeature
})

var heat = L.heatLayer(coords).addTo(map);
Run Code Online (Sandbox Code Playgroud)

geojson的结构是标准的:

{
"type": "FeatureCollection",
"crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } },
"features": [
{ "type": "Feature", "properties": { "st_x": 19.952030181884801, "st_y": 50.055513141929701 }, "geometry": { "type": "Point", …
Run Code Online (Sandbox Code Playgroud)

heatmap geojson leaflet

5
推荐指数
1
解决办法
2922
查看次数

使用多个 OR 语句连接 R

我有两个数据框 -test并且idx - 我的目标是使用merge()或类似的函数来进行条件连接。

例如,testid 具有多个可能的键(某些中还有 NA 值)。您不会找到两个单独的相同的键ids,键将始终是唯一的。

> test
   id keyA keyB keyC
1 foo   NA    2   10
2 bar    1   NA    6
3 baz    7   NA    4
4  li    8    3   NA
5 qux    9   NA   NA
Run Code Online (Sandbox Code Playgroud)

我的目标是加入idx键中存在任何匹配项的位置,例如:

> idx
  key value
1   2    NA
2  10    NA
3   7    NA
4   4    NA
5   9    NA
Run Code Online (Sandbox Code Playgroud)

连接应该输出:

> idx
  key value
1   2   foo
2  10 …
Run Code Online (Sandbox Code Playgroud)

r dplyr

5
推荐指数
1
解决办法
345
查看次数

按特定月份-年份过滤时间戳

我是 postgres 的新手,希望得到任何建议。我有一个 postgres 表,其中有一timestamp列,其值的格式为:1970-01-01 00:00:00

我的目标是选择过去三个月的记录 - 2016 年 12 月、2017 年 1 月和 2017 年 2 月。如何使用仅读取访问权限编写此查询SELECT

当我开始时:

SELECT to_char("start_time", 'YYYY-MM-DD HH:MM:SS') FROM trips;

时间转换为 AM/PM 但我只对按月和年提取和子集感兴趣

sql postgresql timestamp

3
推荐指数
1
解决办法
9740
查看次数

使用应用于列/系列的函数对 pandas 数据框进行子集化

我有一个 pandas 数据框df,我想根据运行Name某个函数的结果对其进行子集化is_valid()

import pandas as pd

data = [['foo', 10], ['baar', 15], ['baz', 14]]
df = pd.DataFrame(data, columns = ['name', 'age'])
df

    name    age
0   foo     10
1   baar    15
2   baz     14
Run Code Online (Sandbox Code Playgroud)

该函数检查输入字符串的长度是否为 3 并返回 True 或 False:

def is_valid(x):
    assert isinstance(x, str)
    return True if len(x) == 3 else False
Run Code Online (Sandbox Code Playgroud)

我的目标是df对该函数返回 True 的位置进行子集化,这将返回输出

    name    age
0   foo     10
2   baz     14
Run Code Online (Sandbox Code Playgroud)

以下语法返回错误;如果输出满足条件(在本例中 = True),则将函数应用于列(系列)的值并对数据帧进行子集化的正确语法是什么?

df[is_valid(df['name'])]
Run Code Online (Sandbox Code Playgroud)

python lambda subset dataframe pandas

3
推荐指数
1
解决办法
584
查看次数

证明ggplot中的标签和标签透明度

我有以下数据:

new_pairs
     x    y Freq start.latittude start.longitude              start.station end.latitude
1  359  519  929        40.75188       -73.97770         Pershing\nSquare N     40.75510
2  477  465 5032        40.75514       -73.98658        Broadway &\nW 41 St     40.75641
3  484  519 1246        40.75188       -73.97770         Pershing\nSquare N     40.75500
4  484  318 2654        40.75320       -73.97799 E 43 St &\nVanderbilt\nAve     40.75500
5  492  267 1828        40.75098       -73.98765        Broadway &\nW 36 St     40.75020
6  492  498  957        40.74855       -73.98808        Broadway &\nW 32 St     40.75020
7  492  362 1405        40.75173       -73.98754        Broadway &\nW 37 …
Run Code Online (Sandbox Code Playgroud)

label r ggplot2

2
推荐指数
1
解决办法
1140
查看次数

标签 统计

r ×4

ggplot2 ×2

python ×2

sql ×2

bash ×1

dataframe ×1

dplyr ×1

geojson ×1

geopandas ×1

heatmap ×1

jq ×1

json ×1

label ×1

lambda ×1

leaflet ×1

pandas ×1

plot ×1

posix ×1

postgis ×1

postgresql ×1

presto ×1

spatial ×1

subset ×1

timestamp ×1