Pandas dataframe to_csv() по умолчанию выполняет нежелательное преобразование формата.
У меня есть лист Excel, содержащий столбцы с целочисленными значениями, которые относятся к элементам параметров в веб-приложении. Я делаю все возможное, чтобы преобразовать эти целочисленные значения в строки, прежде чем экспортировать их в CSV. Однако, когда я это делаю, to_csv() по-прежнему преобразует «1» в «1.0» и «0» в «0.0». Первый вопрос: как мне предотвратить это от Pandas? И второй вопрос, почему to_excel() НЕ показывает такое поведение. Если я экспортирую свой фрейм данных в Excel, целочисленные значения сохраняются правильно.
Я использую Pandas 0.23.4 в виртуальной среде на Mac OSX Mojave.
Любая помощь приветствуется!
Хм, хорошая мысль. Я проверю это. Спасибо!
Таким образом, вы либо удаляете эти строки, используя .dropna
, либо заменяете/заполняете fillna(0)
или что-то еще.
Я не могу их бросить, но, надеюсь, fillna("") сработает. Спасибо за совет.
df[column].fillna('') работает! Спасибо
Если вы обнаружите, что ваши типы изменились на число с плавающей запятой, когда вы изначально думали, что это целое число или все строки, то, скорее всего, у вас отсутствуют значения, такие как NaN
, None
.
Таким образом, вы можете удалить эти строки, используя dropna
:
df[column] = df[column].dropna()
или замените/заполните эти значения:
df[column] = df[column].fillna(some_val)
где some_val
— это 0
или любое другое значение.
Это гарантирует, что dtype для этого столбца не будет смешан или преобразован в float
.
У вас есть
NaN
/отсутствующие значения в этих столбцах? Если это так, то он преобразует dtype в float.