Я пытаюсь записать DataFrame в файл Excel, используя xlsxwriter, и у меня возникают проблемы с заполнением значений NaN.
Независимо от того, что я использую: df.fillna
, df.replace
или параметр na_rep
на записывающем устройстве, в нескольких столбцах сохраняются любые значения NaN в DataFrame.
Исследуя с помощью pdb.set_trace()
, я обнаружил следующее:
(Pdb) df['col_name'][0]
Decimal('NaN')
(Pdb) Decimal(np.nan)
Decimal('NaN')
(Pdb) df['col_name'][0]==Decimal(np.nan)
False
(Pdb) na=df['col_name'][0]
(Pdb) na
Decimal('NaN')
(Pdb) na==df['col_name'][0]
False
(Pdb) df['col_name'][0]
Decimal('NaN')
Как я могу определить эти значения, чтобы заменить их, если я не могу их определить?
2 ответа
Если формат Decimal
для вас не важен, вы можете преобразовать его в float
.
Если для вас важен Decimal
формат , то pandas
не является идеальным выбором, так как он не может векторизироваться, как numpy
массивы.
import pandas as pd, numpy as np
from decimal import Decimal
s = pd.Series([Decimal(np.nan), Decimal(5.1)])
test = s.isnull().tolist() # [False, False]
s = s.astype(float)
test = s.isnull().tolist() # [True, False]
Вы не можете использовать {{X0 }}, чтобы проверить наличие NaN
. Вам следует использовать np.isnan()
.
Похожие вопросы
Связанные вопросы
Новые вопросы
python
Python - это многопарадигмальный, динамически типизированный, многоцелевой язык программирования. Он разработан для быстрого изучения, понимания и использования, а также для обеспечения чистого и единообразного синтаксиса. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Тем не менее, для вопросов о Python, связанных с версией, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas и NumPy) включите его в теги.