Замена NaN на null python pandas - PullRequest
1 голос
/ 27 мая 2020

Я пытаюсь записать из кадра данных pandas в AWS красное смещение:

df_tmp_rpt = pd.read_csv('path')
df_tmp_rpt = df_tmp_rpt[df_tmp_rpt['COL'] == 'VALUE']
df_tmp_rpt = df_tmp_rpt.replace(np.nan, null, regex=True)
records = df_tmp_rpt.to_records(index=False)
for record in records:
     script_insert = ScriptReader.get_script(SCRIPT_PATH).format(record)
     RedshiftDataManager.run_update(script_insert, DB_CONNECTION)

Redshift ожидает формат ('значение1', 'значение2', null) для вставки данных. Вот почему я пытаюсь заменить все NaN на null в кадре данных. Как мне добиться такого? (Мне нужно нулевое значение, а не строка 'null')

Заранее спасибо за помощь

1 Ответ

0 голосов
/ 27 мая 2020

В Python нет нуля. В AWS Redshift ноль - это когда значение отсутствует или неизвестно. Таким образом, замена NaN пустой строкой может сработать. Попробуйте использовать df_tmp_rpt.fillna(value=[None]) вместо replace().

https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.fillna.html#pandas -dataframe-fillna

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...