小编Jav*_*más的帖子

将数据框列中的值附加到列表

我有一个包含多列的数据框,我想将一列的值附加到一个空列表中,以便所需的输出如下:

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 数组或系列的列表,我想直接获取记录。

python list append pandas

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

在 Amazon Sagemaker Jupyter 笔记本中导入自定义模块

我想在 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

我还重新启动了笔记本电脑,以防万一,但它仍然无法正常工作。我怎样才能做到呢?

python import jupyter-notebook amazon-sagemaker

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

arff加载到Python时数据中出现字母

我已经使用以下代码将 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)

当我使用 head 函数查看数据框时,它是这样的: 在此输入图像描述

但是,这些“b”不存在于 arff 文件中,如下所示: https: //gyazo.com/3123aa4c7007cb4d6f99241b1fc41bcb 这里有什么问题?非常感谢

python weka arff pandas

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

如何在 Airflow 中从文件执行 SQL 查询?(PostgresSQL 运算符)

我正在使用 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)

但是,我仍然有同样的错误。我该如何解决呢?

python postgresql jinja2 airflow

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

使用 Python 制作包含 100 多个图的 PDF 报告的最佳方法是什么?

我需要一份包含很多图的 PDF 报告。它们中的大多数将在循环中使用 matplotlib 创建,但我还需要包括 Pandas 图和数据框(整个视图)和 seaborn 图。现在我已经探索了以下解决方案:

  • 蟒蛇。我已经将它用于其他项目,但它会消耗大量时间,因为您必须为要显示的每个图编写 \pythontexprint。
  • savefig在循环的每次迭代中使用command 并将所有绘图保存为图像,以便稍后将所有绘图插入 Latex 中。这也将是非常耗时的选择。另一个选项是使用该命令将绘图保存为 pdf,然后合并所有 pdf。这将创建一个丑陋的报告,因为这些图不会适合整个页面。
  • 使用带有 reticulate 的 RStudio 来创建 Markdown 报告。这里的问题是我需要学习网状功能,从而花费时间。
  • 据我所知,PyPDF 不符合我的需求。
  • 创建一个 jupyter notebook,然后尝试将其导出为 PDF。再一次,我不知道如何使用 jupyter notebook,我读到我必须先转换为 html,然后再转换为 pdf。
  • 来自这里的解决方案:使用 Python 生成报告:PDF 或 HTML 到 PDF但是,问题是三年前的问题,现在可能是更好的选择。

所以我的问题如下:是否有任何简单快捷的方法可以将所有这些图(如果它沿着生成它们的代码更好)以一个体面的方面呈现在 PDF 中?

python pdf report matplotlib pandas

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

如何同时循环本地和列出来生成资源

我有以下 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)

terraform

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

如何避免熊猫直方图子图中的图标题和轴标题之间的重叠?

我有这个用熊猫制作的情节:

在此处输入图片说明

我想在情节的标题和以下情节的轴之间有更多的空间,这样它们就不会重叠。我已经尝试了问题的解决方案,使用 matplotlib 中的许多子图改善子图大小/间距,但没有一个对我的图没有任何影响。

python matplotlib histogram overlap pandas

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

Airflow DAG 成功执行但任务没有运行

我在气流中有一个 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)

python airflow airflow-scheduler

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

将具有不同值的 JSON 提取到 Pandas 中重复的 id 列

我有以下数据框:

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 ...

有什么方法可以在保留列名称的同时获得所需的输出?谢谢

编辑:尝试 BEN_YO 解决方案。我有这个 在此处输入图片说明 在代码之后我得到了这个 在此处输入图片说明 一切都被复制了两次

python json concat pandas

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