to_csv пишет неправильно со значением np.nan - PullRequest
0 голосов
/ 01 ноября 2018

Я пытался записать 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...