Не удается разобрать дату из файла Excel, используя Pandas - PullRequest
0 голосов
/ 02 мая 2020
Data:Panda Dataframe, read from excel

Month      Sales
01-01-17    1009
01-02-17    1004
..
01-12-19    2244

Code:

import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
from statsmodels.tsa.stattools import adfuller
import datetime

CHI = pd.read_excel('D:\DS\TS.xls', index="Month")
CHI['Month'] = pd.to_datetime(CHI['Month']).dt.date
CHI['NetSalesUSD'] = pd.to_numeric(CHI['NetSalesUSD'], errors='coerce')
result = adfuller(CHI)

Получена ошибка: аргумент float () должен быть строкой или числом, а не datetime.date

Я пытался преобразовать в целое число, но все еще не могу получить результаты, какие-либо предложения?

Ответы [ 2 ]

0 голосов
/ 02 мая 2020

Похоже, Pandas не распознает формат даты по умолчанию. Вы можете указать Pandas использовать собственный анализатор даты. См. Pandas документацию для получения более подробной информации.

В вашем случае это выглядело бы примерно так:

def parse_custom_date(x):
    return pd.datetime.strptime(x, '%b-%y')

data_copy = pd.read_excel(
  'D:\DS\DATA.xls', 
  'CHI', 
   index='Month', 
   parse_dates=['Month'], 
   date_parser=parse_custom_date,
)

Обратите внимание, что ваш формат даты не имеет дня месяца, так что это будет первый день месяц.

0 голосов
/ 02 мая 2020

Я думаю, что проблема здесь в Excel. Excel почему-то любит показывать даты как Месяц-День.

Попробуйте изменить формат даты на короткую дату в Excel, затем сохраните и снова запустите сценарий python.

...