小编Gre*_*eda的帖子

枚举DataFrame中每个组的每一行

在pandas中,如何添加一个基于给定分组枚举行的新列?

例如,假设以下DataFrame:

import pandas as pd
import numpy as np

a_list = ['A', 'B', 'C', 'A', 'A', 'C', 'B', 'B', 'A', 'C']
df = pd.DataFrame({'col_a': a_list, 'col_b': range(10)})
df
  col_a  col_b
0     A      0
1     B      1
2     C      2
3     A      3
4     A      4
5     C      5
6     B      6
7     B      7
8     A      8
9     C      9
Run Code Online (Sandbox Code Playgroud)

我想添加一个col_c根据分组col_a和排序给我的"组"的第N行col_b.

期望的输出:

  col_a  col_b  col_c
0     A      0      1
3     A      3      2 …
Run Code Online (Sandbox Code Playgroud)

python pandas

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

使用Airflow的PostgresOperator与Jinja模板和SQL时的TemplateNotFound

当试图使用Airflow的模板功能(通过Jinja2)和PostgresOperator时,我一直无法渲染.我很可能做错了什么,但我很遗憾这个问题可能是什么.这是一个重现我一直得到的TemplateNotFound错误的例子:

airflow.cfg

airflow_home = /home/gregreda/airflow
dags_folder = /home/gregreda/airflow/dags
Run Code Online (Sandbox Code Playgroud)

相关的DAG和变量

default_args = {
    'owner': 'gregreda',
    'start_date': datetime(2016, 6, 1),
    'schedule_interval': None,
    'depends_on_past': False,
    'retries': 3,
    'retry_delay': timedelta(minutes=5)
}

this_dag_path = '/home/gregreda/airflow/dags/example_csv_to_redshift'
dag = DAG(
    dag_id='example_csv_to_redshift',
    schedule_interval=None,
    default_args=default_args
)
Run Code Online (Sandbox Code Playgroud)

/example_csv_to_redshift/csv_to_redshift.py

copy_s3_to_redshift = PostgresOperator(
    task_id='load_table',
    sql=this_dag_path + '/copy_to_redshift.sql',
    params=dict(
        AWS_ACCESS_KEY_ID=Variable.get('AWS_ACCESS_KEY_ID'),
        AWS_SECRET_ACCESS_KEY=Variable.get('AWS_SECRET_ACCESS_KEY')
    ),
    postgres_conn_id='postgres_redshift',
    autocommit=False,
    dag=dag
)
Run Code Online (Sandbox Code Playgroud)

/example_csv_to_redshift/copy_to_redshift.sql

COPY public.table_foobar FROM 's3://mybucket/test-data/import/foobar.csv'
CREDENTIALS 'aws_access_key_id={{ AWS_ACCESS_KEY_ID }};aws_secret_access_key={{ AWS_SECRET_ACCESS_KEY }}'
CSV
NULL as 'null'
IGNOREHEADER as 1;
Run Code Online (Sandbox Code Playgroud)

调用airflow render example_csv_to_redshift load_table 2016-06-14抛出以下异常.注意我也遇到了另一个DAG的问题,这就是你看到example_redshift_query_to_csv提到的路径的原因. …

python jinja2 airflow

7
推荐指数
2
解决办法
4397
查看次数

标签 统计

python ×2

airflow ×1

jinja2 ×1

pandas ×1