我有一个包含多列的数据框,我想将一列的值附加到一个空列表中,以便所需的输出如下:
empty_list = [value_1,value_2,value_3...]
Run Code Online (Sandbox Code Playgroud)
我尝试了以下方法:
df = pd.DataFrame({'country':['a','b','c','d'],
'gdp':[1,2,3,4],
'iso':['x','y','z','w']})
a_list = []
a_list.append(df['iso'])
a_list.append(df['iso'].values)
a_list.append(df['iso'].tolist())
Run Code Online (Sandbox Code Playgroud)
无论哪种方式,我都会得到一个包含列表、numpy 数组或系列的列表,我想直接获取记录。
我想在 Sagemaker 的 jupyter 笔记本中导入自定义模块。尝试从 Untitled1.ipynb 导入我尝试了两种不同的结构。第一个是:
“包文件夹”内有文件“cross_validation.py”和“ init .py”。已尝试以下命令:
from package import cross_validation
import package.cross_validation
Run Code Online (Sandbox Code Playgroud)
第二个是
我已经编码了 import cross_validation
在这两种情况下,导入时我根本没有收到错误,但我无法使用模块内的类,因为我收到错误名称Class_X is not defined
我还重新启动了笔记本电脑,以防万一,但它仍然无法正常工作。我怎样才能做到呢?
我已经使用以下代码将 arff 文件加载到 python 中:
import pandas as pd, scipy as sp
from scipy.io import arff
datos,meta = arff.loadarff(open('selectividad.arff', 'r'))
d = pd.DataFrame(datos)
Run Code Online (Sandbox Code Playgroud)
但是,这些“b”不存在于 arff 文件中,如下所示: https: //gyazo.com/3123aa4c7007cb4d6f99241b1fc41bcb 这里有什么问题?非常感谢
我正在使用 PostgresSQL 运算符。任务如下:
emailage_transformations = PostgresOperator(
task_id = 'emailage_transformations',
sql = '/home/ubuntu/airflow_ci/current/scripts/antifraud/emailage_transformations.sql',
postgres_conn_id = 'redshift',
autocommit = True,
dag = dag)
Run Code Online (Sandbox Code Playgroud)
首先,文件的内容如下:
select cd_pedido_nr,fraud_score,risk_band,ip_risk_level
into antifraud.stg_emailage_id_pedido
from antifraud.stg_emailage_id_email e
left join antifraud.info_emails i on id_email = cd_email_nr
;
Run Code Online (Sandbox Code Playgroud)
我得到的错误是
jinja2.exceptions.TemplateNotFound: /home/ubuntu/airflow_ci/current/scripts/antifraud/emailage_transformations.sql
Run Code Online (Sandbox Code Playgroud)
因此,我在查询中添加了几个括号以符合 jinja2 模板,现在文件代码为:
{select cd_pedido_nr,fraud_score,risk_band,ip_risk_level
into antifraud.stg_emailage_id_pedido
from antifraud.stg_emailage_id_email e
left join antifraud.info_emails i on id_email = cd_email_nr
;}
Run Code Online (Sandbox Code Playgroud)
但是,我仍然有同样的错误。我该如何解决呢?
我需要一份包含很多图的 PDF 报告。它们中的大多数将在循环中使用 matplotlib 创建,但我还需要包括 Pandas 图和数据框(整个视图)和 seaborn 图。现在我已经探索了以下解决方案:
savefig在循环的每次迭代中使用command 并将所有绘图保存为图像,以便稍后将所有绘图插入 Latex 中。这也将是非常耗时的选择。另一个选项是使用该命令将绘图保存为 pdf,然后合并所有 pdf。这将创建一个丑陋的报告,因为这些图不会适合整个页面。所以我的问题如下:是否有任何简单快捷的方法可以将所有这些图(如果它沿着生成它们的代码更好)以一个体面的方面呈现在 PDF 中?
我有以下 tf 文件:
locals {
schemas = {
"ODS" = {
usage_roles = ["TRANSFORMER"]
}
"EXT" = {
usage_roles = []
}
"INT" = {
usage_roles = ["REPORTER"]
}
"DW" = {
usage_roles = ["LOADER"]
}
}
}
resource "snowflake_schema" "schema" {
for_each = local.schemas
name = each.key
database = ???????
usage_roles = each.value.usage_roles
}
Run Code Online (Sandbox Code Playgroud)
我想按原样维护本地变量(每个模式有不同的 use_roles 并在此处进行硬编码),同时为每个模式提供多个值作为数据库。在伪代码中它将是:
for database in ['db_1', 'db_2', 'db_3']:
resource "snowflake_schema" "schema" {
for_each = local.schemas
name = each.key
database = database
usage_roles = each.value.usage_roles …Run Code Online (Sandbox Code Playgroud) 我有这个用熊猫制作的情节:
我想在情节的标题和以下情节的轴之间有更多的空间,这样它们就不会重叠。我已经尝试了问题的解决方案,使用 matplotlib 中的许多子图改善子图大小/间距,但没有一个对我的图没有任何影响。
我在气流中有一个 DAG,有一个任务(一个 python 操作员),我强制在 GUI 中运行它并获得成功状态。但是,任务没有执行,因此 DAG 什么也不做。dag的代码如下:
from airflow import DAG
from airflow.operators.python_operator import PythonOperator
from airflow.hooks import MySqlHook
import pandas as pd
import datetime as dt
import json
from datetime import timedelta
default_args = {
'owner': 'airflow',
'start_date': dt.datetime(2019,8,29,18,0,0),
'concurrency':1,
'retries':3
}
def extraction_from_raw_data(conn_id):
mysqlserver = MySqlHook(conn_id)
query = """select * from antifraud.email_fraud_risk
WHERE ts >= DATE_ADD(CURDATE(), INTERVAL -3 DAY)"""
raw_data = mysqlserver.get_records(query)
raw_data = pd.DataFrame(raw_data)
data_as_list = []
for i in range(len(raw_data)):
dict1 = {}
dict1.update(json.loads(raw_data.at[i,'raw_content']))
data_as_list.append(dict1) …Run Code Online (Sandbox Code Playgroud) 我有以下数据框:
df = pd.DataFrame({'id':['0001', '0001'],
'vat_countries': [{'vat': 21, 'country': 'ES'},
{'vat': 23, 'country': 'GR'}]
})
id vat_countries
0001 {'vat': 21, 'country': 'ES'}
0001 {'vat': 23, 'country': 'GR'}
Run Code Online (Sandbox Code Playgroud)
我想得到的是:
id vat country
0001 21 'ES'
0001 23 'GR'
Run Code Online (Sandbox Code Playgroud)
阅读其他 SO 问题我得到以下代码:
df = df.drop('vat_countries', 1).assign(**pd.DataFrame(list_df['vat_countries'].values.tolist()))
Run Code Online (Sandbox Code Playgroud)
然而,这给了我:
id vat country
0001 21 'ES'
0001 21 'ES'
Run Code Online (Sandbox Code Playgroud)
这是错误的。
我已经能够得到我想要使用的结果:
c = pd.concat([pd.DataFrame(df[column].values.tolist()),
df.drop(column, 1).reset_index()],
axis=1, ignore_index=True)
Run Code Online (Sandbox Code Playgroud)
但这需要手动键入列名。否则,列名是 0, 1, 2, 3 ...
有什么方法可以在保留列名称的同时获得所需的输出?谢谢