Pandas: конвертировать столбец в timedelta64 - PullRequest
0 голосов
/ 23 апреля 2020

Я пытаюсь прочитать файл CSV как pandas фрейм данных. Помимо имен столбцов, я получаю ожидаемый dtype. Мой подход таков:

  1. чтение CSV с предполагаемыми типами столбцов (как я хочу, чтобы иметь возможность обнаруживать проблемы)
  2. чтение ожидаемых типов столбцов
  3. итерация по столбцы и попробуйте преобразовать их с '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'?

...