TypeError: '<=' не поддерживается между экземплярами 'Timestamp' и 'numpy .float64' - PullRequest
1 голос
/ 16 июня 2020

Я пытаюсь построить график с использованием hvplot и получаю следующее:

TypeError: '<=' не поддерживается между экземплярами 'Timestamp' и 'numpy .float64' </p>

Вот мои данные:

    TimeConv    Hospitalizations
1   2020-04-04  827
2   2020-04-05  1132
3   2020-04-06  1153
4   2020-04-07  1252
5   2020-04-08  1491
... ... ...
71  2020-06-13  2242
72  2020-06-14  2287
73  2020-06-15  2326
74  NaT NaN
75  NaT NaN

Ниже мой код:

import numpy as np
import matplotlib.pyplot as plt
import xlsxwriter
import pandas as pd
from pandas import DataFrame

path = ('Casecountdata.xlsx')
xl = pd.ExcelFile(path)
df1 = xl.parse('Hospitalization by Day')
df2 = df1[['Unnamed: 1','Unnamed: 2']]
df2 = df2.drop(df2.index[0])
df2 = df2.rename(columns={"Unnamed: 1": "Time", "Unnamed: 2": "Hospitalizations"})
df2['TimeConv'] = pd.to_datetime(df2.Time)
df3 = df2[['TimeConv','Hospitalizations']]

1 Ответ

0 голосов
/ 19 июня 2020

Когда я беру образец ваших данных выше и пытаюсь построить его, у меня это работает, поэтому может быть что-то не так в том, как вы читаете свои данные из Excel в pandas. Вы можете попробовать сделать df.info(), чтобы увидеть, как выглядят типы данных ваших данных. Столбец TimeConv должен иметь формат datetime64 [нс], а столбец «Госпитализация» - int64 (или float). Также может быть проблема с версией ... у вас установлены последние версии hvplot et c? Но я предполагаю, что ваши данные выглядят неправильно.

В любом случае, когда я запускаю следующее, оно работает и отображает ваши данные:

# import libraries
import pandas as pd
import hvplot.pandas
import holoviews as hv
hv.extension('bokeh')
from io import StringIO  # need this to read your text data

# your sample data
text_data = StringIO("""
    column1    TimeConv    Hospitalizations
    1   2020-04-04  827
    2   2020-04-05  1132
    72  2020-06-14  2287
    73  2020-06-15  2326
    74 NaT NaN
""")

# read text data to dataframe
df = pd.read_csv(text_data, sep="\s+")
df['TimeConv'] = pd.to_datetime(df.TimeConv, yearfirst=True)

# shortly checkout datatypes of your data
df.info()

# create scatter plot of your data
df.hvplot.scatter(
    x='TimeConv',
    y='Hospitalizations',
    width=500,
    title='Showing hospitalizations over time',
)


Этот код приводит к следующему графику: scatter plot with hvplot

...