小编ana*_*ine的帖子

从命令行 (cli) 使用 aws ec2 describe-instances 时,按标签过滤不起作用

我目前正在尝试从命令行编写 aws ec2 查询(在 AWS Linux 中,这并不重要)。我正在尝试设置一个匹配以下两项的过滤器:

  1. 显示那些处于关闭状态的实例(代码 80);
  2. 显示具有标签“ShortPurpose”且值为“Fleet”的实例。

实际发生的情况是,所有处于关闭状态的实例都将被返回,无论它们是否设置了标签“ShortPurpose”:“Fleet”。

我的实例设置如下:

+-------------+--------------+------------------------+--+
| Instance ID |     Tag      |       Tag Value        |  |
+-------------+--------------+------------------------+--+
| i-09876     | ShortPurpose | Fleet                  |  |
|             | Organisation | UmbrellaCorp           |  |
|             | Name         | cloud-01               |  |
|             | Owner        | ORG-UMBR-ELLA          |  |
|             | Purpose      | Cloud processing fleet |  |
+-------------+--------------+------------------------+--+
|             |              |                        |  |
| i-12345     |  (no tags)   |                        |  |
|             |              |                        | …
Run Code Online (Sandbox Code Playgroud)

amazon-ec2 amazon-web-services aws-cli

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

DASK:Typerrror:列分配不支持类型 numpy.ndarray 而 Pandas 工作正常

我正在使用 Dask 读取 10m 行 csv+ 并执行一些计算。到目前为止,它被证明比 Pandas 快 10 倍。

我在下面有一段代码,当与 Pandas 一起使用时可以正常工作,但与 dask 一起使用时会引发类型错误。我不确定如何克服 typerror。似乎在使用 dask 时,select 函数将一个数组传递回数据框/列,但在使用 Pandas 时却没有?但我不想将整个事情切换回 Pandas 并失去 10 倍的性能优势。

这个答案是 Stack Overflow 上其他一些人的一些帮助的结果,但是我认为这个问题与最初的问题相差甚远,以至于完全不同。代码如下。

PANDAS: 不包括 AndHeathSolRadFact 的工作时间:40 秒

import pandas as pd
import numpy as np

from timeit import default_timer as timer
start = timer()
df = pd.read_csv(r'C:\Users\i5-Desktop\Downloads\Weathergrids.csv')
df['DateTime'] = pd.to_datetime(df['Date'], format='%Y-%d-%m %H:%M')
df['Month'] = df['DateTime'].dt.month
df['Grass_FMC'] = (97.7+4.06*df['RH'])/(df['Temperature']+6)-0.00854*df['RH']+3000/df['Curing']-30


df["AndHeathSolRadFact"] = np.select(
    [
    (df['Month'].between(8,12)),
    (df['Month'].between(1,2) & df['CloudCover']>30)
    ],  #list …
Run Code Online (Sandbox Code Playgroud)

python numpy pandas dask

5
推荐指数
2
解决办法
4544
查看次数

从 CASE 语句内部设置 PostgreSQL 变量

目前作为新手使用 PostgresSQL 10,并尽可能遵循文档。欢迎大家帮忙。

我正在尝试根据 case 语句设置变量的值,以便我可以在代码的下一部分中使用该值。我在语法上遇到问题,老实说只是了解如何从 case 语句中设置值。

下面是我到目前为止得到的代码。

我正在尝试设置变量“AndSol”的值。根据 case 语句,该值将设置为 0 或 1。

带有注释“太阳辐射”的块是我在设置变量值时遇到问题的地方。包含的其余代码仅供参考我想要实现的目标。我以类似THEN AndSol := 1;的方式结束每个 where 子句。,我认为这就是错误所在。我不知道如何解决它。

基本流程:

  1. 计算出该变量应该为 0 还是 1。

  2. 设置变量。

  3. 在下一部分中使用该变量。

DO $$
DECLARE AndSol NUMERIC;
BEGIN
    DROP MATERIALIZED VIEW IF EXISTS view_6day_mat;
    CREATE MATERIALIZED VIEW view_6day_mat
    AS
        SELECT prod_qld_6km_grids.weather_cell_id,
                prod_qld_6km_grids.latitude,
                prod_qld_6km_grids.longitude,

               /* Solar Radiation */
                CASE
                    WHEN EXTRACT(MONTH FROM prod_weathergrids.dates) >= 8 AND EXTRACT(MONTH FROM prod_weathergrids.dates) <= 12 THEN AndSol := 1;
                    WHEN EXTRACT(MONTH FROM prod_weathergrids.dates) = 1 AND EXTRACT(MONTH …
Run Code Online (Sandbox Code Playgroud)

postgresql plpgsql

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

Lightsail 中没有 Amazon Linux 2?

尝试在 AWS Lightsail 上创建新实例时,只有 AWS Linux (2018.03.0) 选项,而不是 AWS Linux 2。

鉴于 AWS Linux 将于 2020 年 12 月终止支持,我有点担心在 Lightsail 中找不到 AWS Linux 2。

我在这里错过了什么吗?

在此处输入图片说明

amazon-web-services amazon-lightsail

4
推荐指数
1
解决办法
151
查看次数

使用 create_engine 将 SQLAlchemy 转换为 MSSQL

我能找到的大多数展示 Python 的完整 MSSQL 连接方法的示例在几个月前就已经过时了,这在一定程度上要归功于 SQLAlchemy 1.3中的一些优化。我正在尝试复制我在文档中看到的内容。

我在使用 pyodbc 将 SQLAlchemy 连接到 MSSSQL Server 时遇到问题。

我有一个本地 SQL 服务器,可以从 SQL Server Management Studio 访问:#DESKTOP-QLSOTTG\SQLEXPRESS
数据库是:TestDB
本示例中的用户名是:TestUser
密码,本示例中是:TestUserPass

我想运行一个将 pandas 数据帧导入 MSSQL 数据库的测试用例(案例?),以便找出最快的处理方式。然而,这个问题的目的是围绕连接性。

信用:我从 Gord那里借用了一些用于数据帧/更新的代码。

import pandas as pd
import numpy as np
import time
from sqlalchemy import create_engine, event
from urllib.parse import quote_plus


# for pyodbc
#engine = create_engine('mssql+pyodbc://TestUser:TestUserPAss@DESKTOP-QLSOTTG\\SQLEXPRESS:1433/TestDB?driver=ODBC+Driver+17+for+SQL+Server', fast_executemany=True)
engine = create_engine("mssql+pyodbc://TestUser:TestUserPass@DESKTOP-QLSOTTG\\SQLEXPRESS:1433/TestDB?driver=ODBC+Driver+13+for+SQL+Server", fast_executemany=True)

# test data
num_rows = 10000
num_cols = 100
df = pd.DataFrame(
    [[f'row{x:04}col{y:03}' for y …
Run Code Online (Sandbox Code Playgroud)

python sql-server sqlalchemy pandas

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

POSTGRES:磁盘绑定 IO - 可以将表保存在内存中吗?

我是一个相对的 Postgres 新手,但对 MSSQL 有一些基本的经验。

我有一个关于 PostgreSQL(PostGIS,它是空间的)的表,其中包含大约 10,000,000 个多边形。它所在的机器有 64GB RAM、16 个内核和一个 1TB 旋转硬盘。这只是目前数据库中仅有的表。因为很少访问该表(可能每隔几个小时一次),所以我注意到该表不会像我对 MSSQL 所期望的那样留在 RAM 中。相反,该表似乎从内存中释放并以活动状态位于磁盘上。当我想查询/加入/询问/等时,这导致 100% 硬盘利用率超过 15 分钟。当表似乎在内存中时,后续操作明显更快(秒而不是分钟)。

有没有办法让 Postgres 将某个表保留在内存中,或者让调度程序/执行智能的任何 postgres 位将表保存在 ram 中,而不是让它进入磁盘,然后在需要时将其重新调用到内存中?

我有空间索引(和其他几个经常需要过滤/排序索引的列),所以当从内存中调用时它非常快。

同样的问题似乎也严重影响了 JOINS,因为它们也需要首先读取表。这对我来说是一个单独的问题,但似乎受到相同的根本问题的影响。磁盘 IO 绑定。

我的数据库设置就是这样 - 所以一般来说我不会受到可用内存/内存的限制,据我所知。

编辑:表是 26GB

Postgres 13.2 with PostGIS 3.1.1

 max_connections = '20';
 shared_buffers = '8GB';
 effective_cache_size = '24GB';
 maintenance_work_mem = '2047MB';
 checkpoint_completion_target = '0.9';
 wal_buffers = '16MB';
 default_statistics_target = '500';
 random_page_cost = '4';
 work_mem = '26214kB';
 min_wal_size = '4GB';
 max_wal_size = '16GB';
 max_worker_processes = '16'; …
Run Code Online (Sandbox Code Playgroud)

postgresql postgis

4
推荐指数
1
解决办法
49
查看次数

熊猫对两个数字之间的列的操作

目前使用 Pandas 和 Numpy。我有一个名为“df”的数据框。假设我有以下数据,如何根据 between 子句为第三列提供值?如果可能的话,我想将其视为一种矢量化方法,以保持我已有的速度。

我尝试过 lambda 函数,但坦率地说,我不明白我在做什么,并且我收到错误,例如对象没有属性“之间”。

一般方法 - 使用非矢量化方法:

NOTE: I am looking for a way to make this vectorised.

If df.['Col2'] is between 0 and 10
   df.['Col 3'] = 1
Elseif df.['Col2'] is between 10.01 and 20
   df.['Col3']  = 2
Else if df.['Col2'] is between 20.1 and 30
   df.['Col3']  = 3
Run Code Online (Sandbox Code Playgroud)

样本集

+------+------+------+
| Col1 | Col2 | Col3 |
+------+------+------+
| a    |    5 |    1 |
| b    |   10 |    1 …
Run Code Online (Sandbox Code Playgroud)

python dataframe python-3.x pandas

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

Pandas:将日期时间 (%Y-%d-%m %H:%M) 转换为 (%Y-%m-%d %H:%M)

我一直在用例子等来讨论这个主题,但我似乎无法让它发挥作用。

我有一个 pandas 数据框,其中有一个名为“Date我希望将格式从年-月-日小时:分钟更改为年-月-日小时:分钟”的字段。新的领域将是Date2. 该Date字段的类型被报告为“对象”。

到目前为止,我已经尝试过以下几种变体:

df['Date2'] = pd.to_datetime(df['Date'], format='%Y-%m-%d %H:%M').dt.strftime('%Y-%d-%m %H:%M')

df['Date2'] = pd.to_datetime(df['Date'], format='%Y-%m-%d %H:%M')
Run Code Online (Sandbox Code Playgroud)

该字段中的示例日期Date2020-02-12 04:00
所需的Date2输出是2020-12-02 04:00

python dataframe pandas

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