小编Rus*_*ord的帖子

如何在 pd.io.sql.get_schema 中指定 sql 的风格?

我正在尝试使用pd.io.sql.get_schema从数据帧生成 postgres 模式。

没有文档pd.io.sql.get_schema但是从这个(https://github.com/pandas-dev/pandas/issues/9960)链接它说我可以指定一种sql风格。

然而,这个功能似乎已被弃用,我可以指定一个像 postgresql 这样的引擎(从 Pandas 数据帧生成 SQL 语句)。我该怎么做呢?

到目前为止,这是我的代码:

pd.io.sql.get_schema(df.reset_index(), 'data')
Run Code Online (Sandbox Code Playgroud)

对生成模式的所有建议开放。

schema python-3.x pandas

9
推荐指数
1
解决办法
2430
查看次数

将 numpy 安装到目录后,AWS Lambda 中缺少必需的依赖项 ['numpy'],如何解决?

我正在尝试将我的 python 代码上传到 AWS Lambda。我一直在按照本指南创建部署包 ( https://docs.aws.amazon.com/lambda/latest/dg/lambda-python-how-to-create-deployment-package.html )。

我在桌面上创建了一个文件夹“project-dir”,并将我的 python 文件“Twilio_Alerts_AWS.py”移动到该文件夹​​中。我使用了以下命令:

pip install module-name -t /path/to/project-dir
Run Code Online (Sandbox Code Playgroud)

将我所有的库安装到该文件夹​​中。接下来,我突出显示所有内容并通过右键单击文件夹中突出显示的文件来点击“压缩”。这会生成一个名为“存档”的压缩文件

我将'archive.zip'它放在 AWS 上的 S3 存储桶中,并将其调用到 AWS Lambda 中。Unable to import module 'Twilio_Alerts_AWS': Missing required dependencies ['numpy'] 即使我已将 numpy 安装到文件夹中,我仍然收到错误消息。

不知道我做错了什么。

我正在尝试上传的代码:

from twilio.rest import Client
import time
import datetime
import requests
import pandas as pd
from pandas.io.json import json_normalize




def lambda_handler(event, context):
    # Your Account SID from twilio.com/console
    account_sid = "xxx"
    # Your Auth Token from twilio.com/console
    auth_token  = "xxx" …
Run Code Online (Sandbox Code Playgroud)

python numpy amazon-web-services aws-lambda

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

如何将键到多个值映射到dataframe列?

我有一个df列,看起来像这样:

col1
Non Profit
Other-501c3
501c3
Sole Proprietor
Run Code Online (Sandbox Code Playgroud)

如何创建字典对象或映射层(对所有建议开放),如果它符合标准并更改键值,我可以传递任何值?

例如,如果值是,Other-501c3则将其更改为non-profit.

示例(等号后的所有内容都需要更改为等号前的值):

1. non-profit = (Non Profit, Other-501c3, 501c3,NON-Profit, Not-for-profit).

2. Sole Proprietor = (Sole Proprietor,Sole Proprietorship)
Run Code Online (Sandbox Code Playgroud)

解决方案应该是可扩展的,我可以添加更多"关键值"对

先感谢您.

python dictionary series python-3.x pandas

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

如何在 psycopg2 中链接多个语句?

我可以使用以下命令将数据从 s3 存储桶复制到 redshift 表中psycopg2

import psycopg2

sql = """ copy table1 from 's3://bucket/myfile.csv'
    access_key_id 'xxxx'
    secret_access_key 'xxx' DELIMITER '\t'
    timeformat 'auto'
    maxerror as 250 GZIP IGNOREHEADER 1 """

cur.execute(sql)
Run Code Online (Sandbox Code Playgroud)

如何串接多个 redshift 语句来执行以下三件事:

  1. 数据从 s3 移动后,从 table1 创建另一个表 (table2)
  2. 将数据从 table1 移动到 table2
  3. 删除表1

我尝试了以下方法:

sql = """ copy table1 from 's3://bucket/myfile.csv'
    access_key_id 'xxxx'
    secret_access_key 'xxx' DELIMITER '\t'
    timeformat 'auto'
    maxerror as 250 GZIP IGNOREHEADER 1 
    create table table2 as table1
    drop table table1"""
Run Code Online (Sandbox Code Playgroud)

我没有收到任何错误,但表没有创建,只有副本在上面工作。我的 sql 做错了什么?

psycopg2 python-3.x amazon-redshift

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

如何在没有函数的情况下将 executor.map 应用于 for 循环?

我有一个 xml 列表和一个 for 循环,可将 xml 展平为 pandas 数据框。

for 循环工作得很好,但是需要很长时间才能压平 xml,而且随着时间的推移,xml 会变得越来越大。

如何包装下面的 for 循环以executor.map在不同内核之间分配工作负载?我正在关注这篇文章https://medium.com/@ageitgey/quick-tip-speed-up-your-python-data-processing-scripts-with-process-pools-cf275350163a

for 循环压平 xml:

df1 = pd.DataFrame()
for i in lst:
    print('i am working')
    soup = BeautifulSoup(i, "xml")
    # Get Attributes from all nodes
    attrs = []
    for elm in soup():  # soup() is equivalent to soup.find_all()
        attrs.append(elm.attrs)

    # Since you want the data in a dataframe, it makes sense for each field to be a new row consisting of all the …
Run Code Online (Sandbox Code Playgroud)

python python-3.x concurrent.futures

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

如何使用解密密钥加密和解密熊猫数据帧?

我有一个包含 300 列的 df,但是ID我想加密其中一列,如果我将 df 作为 csv 提供给他们,则允许其他任何拥有密钥的人进行解密。

这可能吗?

我知道如何对列进行哈希处理,但据我所知,我无法对其进行哈希处理,也无法向某人提供对其进行哈希处理的密钥。

先感谢您。

编辑:

df

id
1
2
3
Run Code Online (Sandbox Code Playgroud)

@Wen 这是一个很好的例子:

(1:2), (2:3),(3:4)
Run Code Online (Sandbox Code Playgroud)

新DF

id
2
3
4
Run Code Online (Sandbox Code Playgroud)

python encryption python-3.x pandas

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

如何将联合中的空列转换为最新日期?

[SQL 初学者]

我有如下所示的 sql 查询:

select * from 
(select '' as dates from table1

union 

select dates from table2)
Run Code Online (Sandbox Code Playgroud)

当我运行这个查询时,我收到错误UNION types text and timestamp without time zone cannot be matched

我尝试将dates表 2 中的列转换为 varchar,但这不是我想要的。如何将 table1 中的空字段转换为日期时间?

我试过这个:

select * from 
(select cast(('' as dates) as date) as dates from table1

union 

select dates from table2)
Run Code Online (Sandbox Code Playgroud)

但这也不起作用。

postgresql

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

当 json_normalize 无法遍历列以展平时如何修复它?

我有一个看起来像这样的数据框:

ID       phone_numbers
1        [{u'updated_at': u'2017-12-02 15:29:54', u'created_at': u'2017-12-0 
          2 15:29:54', u'sms': 0, u'number': u'1112223333', u'consumer_id': 
          12345, u'organization_id': 1, u'active': 1, u'deleted_at': 
           None, u'type': u'default', u'id': 1234}]
Run Code Online (Sandbox Code Playgroud)

我想获取 phone_numbers 列并将其中的信息展平,以便我可以查询“id”字段。

当我尝试时;

json_normalize(df.phone_numbers)
Run Code Online (Sandbox Code Playgroud)

我得到错误:

AttributeError: 'str' 对象没有属性 'itervalues'

我不确定为什么会产生这个错误以及为什么我不能展平这个列。

编辑:

最初是从响应对象(r.text)中读取的 JSON 字符串:

https://docs.google.com/document/d/1Iq4PMcGXWx6O48sWqqYnZjG6UMSZoXfmN1WadQLkWYM/edit?usp=sharing

编辑:

通过此命令将我需要展平的列转换为 JSON

a = df.phone_numbers.to_json()

{"0":[{"updated_at":"2018-04-12 12:24:04","created_at":"2018-04-12 12:24:04","sms":0,"number":"","consumer_id":123,"org_id":123,"active":1,"deleted_at":null,"type":"default","id":123}]}
Run Code Online (Sandbox Code Playgroud)

python json pandas

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

如何从select语句中批量调用数据并追加到dataframe中?

我有一个包含 sql 语句的文件,我正在使用pyodbc. sql 语句只是一个 select 语句,如下所示:

select distinct (columns) from table1
Run Code Online (Sandbox Code Playgroud)

然而我调用的数据是 3000 万行。

我可以对较小的表执行此操作,并将信息放入数据框中。

无论如何,是否可以批处理 select 语句以仅提取 X 行并附加到数据帧中,并继续执行此操作,直到 3000 万条记录结束?

到目前为止的代码:

import os.path
import pandas as pd
import tinys3
import psycopg2
import pyodbc
from datetime import datetime
import uuid
import glob
from os import listdir
from os.path import isfile, join
import time

startTime = datetime.now()

#reading in data for db
server = 'xxxx' 
database = 'xxx' 
username = 'xxx' 
password = 'xxxx' 
driver= '{ODBC Driver …
Run Code Online (Sandbox Code Playgroud)

python pyodbc python-3.x pandas

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

“收听”新文件的 s3 存储桶的最佳方式?

我已将 zapier 连接到我也在监听的 webhook,它将 JSON 文件发送到我的 s3 存储桶中。

我有一些 python 代码,我想在新文件上传到存储桶时实时执行文件。

“侦听”将此文件上传到 s3 存储桶的最佳方法是什么?

python amazon-s3 webhooks zapier

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