Создание таблицы SQL и передача функции Python - PullRequest
0 голосов
/ 31 декабря 2018

Мне нужно создать таблицу SQL, но мне нужно добавить столбец, в котором я передаю функцию python.В конечном итоге, что делает этот питон, он берет все значения из столбца email и очищает его, т.е. обрезает и т. Д. Эта функция называется clean_email

Пока у меня есть мой фрейм данных в блокноте Jupyter, мойтаблица выглядит следующим образом

df = pd.read_sql("""select id, 
                     user_id,
                     is_gift,
                     date_trunc('day',
                         created_at AT TIME ZONE 'UTC' AT TIME ZONE 'US/Eastern') 
                         as created_at,
                         product_line,
                         email
                         from (select s.*, 
                               u.email,
                               row_number() over (
                               partition by user_id 
                               order by s.created_at asc) rn
                                    from table1 s
                                    inner join table2 u on s.user_id = u.id) 
                            where rn = 1 
                            order by created_at desc """,
                              conn)

, и я добавил столбец к этому фрейму данных, используя панд, например:

df['clean_email'] = df['email'].apply(clean_email)

Мой вопрос: я знаю, как манипулировать фреймами данных с помощью панд, но как это сделать?Я делаю это, чтобы создать тот же самый DataFrame как таблицу в моей схеме Redshift для целей ETL?

1 Ответ

0 голосов
/ 31 декабря 2018

Теперь вы можете взять тот же самый фрейм данных и вернуть его обратно в красное смещение.

from sqlalchemy import create_engine
engine = create_engine('postgres://%s:%s@%s:8192/<db>' %(username, dbpassword, dbhost), encoding="utf-8")

DF.to_sql('<table name>', engine, schema='<insert schema>', if_exists='<replace or append>', index=<True or False>)
...