Я пытался записать DataFrame в CSV-файл, используя функцию to_csv()
. Я хотел бы, чтобы столбцы с object
dtype имели кавычки, а столбцы с float64
dtype без кавычек. Однако, похоже, что функция записывает кавычки для значения np.nan
для столбца с float64
dtype.
Я обнаружил похожую ошибку в сообществе Pandas:
to_csv пишет неправильно со значением NaN
Но я не знал, как заставить его работать правильно после прочтения поста. Поэтому я бы хотел, чтобы эксперт Python помог в этом.
Ниже приведены некоторые фрагменты кода с более подробной информацией:
import csv
import pandas as pd
import numpy as np
df = pd.DataFrame({'account_id': ['p1', 'p2', 'p3'],
'currency': ['', '', 'USD'],
'mv': [1.232, np.nan, 3.6]})
df.to_csv("~/test.csv", index=False, encoding='utf-8', sep=',', quoting=csv.QUOTE_NONNUMERIC)
Токовый выход:
"account_id","currency","mv"
"p1","",1.232
"p2","",""
"p3","USD",3.6
Ожидаемый результат:
"account_id","currency","mv"
"p1","",1.232
"p2","",
"p3","USD",3.6
Ниже приведены некоторые подробности моей настройки Python:
python: 3.6.3.final.0
python-bits: 64
OS: Darwin
OS-release: 16.7.0
LOCALE: en_US.UTF-8
pandas: 0.23.0