Я пытаюсь прочитать файл CSV как pandas фрейм данных. Помимо имен столбцов, я получаю ожидаемый dtype. Мой подход таков:
- чтение CSV с предполагаемыми типами столбцов (как я хочу, чтобы иметь возможность обнаруживать проблемы)
- чтение ожидаемых типов столбцов
- итерация по столбцы и попробуйте преобразовать их с
'astype'
Теперь у меня есть timedeltas в наносекундах. Они считываются как float64 и могут содержать пропущенные значения. 'astype'
терпит неудачу со следующим сообщением:
ValueError: Cannot convert non-finite values (NA or inf) to integer
Этот маленький скрипт может воспроизвести мою проблему. Метод 'to_timedelta'
отлично работает с моими данными, в то время как преобразование выдает ошибку.
import pandas as pd
import numpy as np
timedeltas = [200800700,30020010030,np.NaN]
data = {'timedelta': timedeltas}
pd.to_timedelta(timedeltas)
df = pd.DataFrame(data)
df.dtypes
df['timedelta'].astype('timedelta64[ns]')
Кто-нибудь может помочь решить эту проблему? Есть ли другое представление сохранения, кроме наносекунд, которое будет работать с 'astype'
?