add support for Pandas Time spans as index col (PeriodIndex)
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Python
- Estrellas
- 18.8k
- Forks
- 2.8k
- Merge medio
- 16 h 26 min
- PR fusionados (30 d)
- 21
Descripción
Hello,
I'd like to use the pandas PeriodIndex date format to work with and calculate things in a time series way.
The manual says that Plotly auto-sets the axis type to a date format when the corresponding data are either ISO-formatted date strings or if they're a date pandas column or datetime NumPy array. (https://plotly.com/python/time-series/)
So I guess, since a PeriodIndex isn't of the concept "date" but of the concept "Time spans", Plotl.ly isn't able to auto-set this axis type? The error I get is a TypeError: Object of type Period is not JSON serializable
I know I can solve this with converting to another format (#df.index = df.index.astype(str)), but it would be great to have a native solution inside plot.ly that can understand PeriodIndex.
Here is my example code:
import pandas as pd
import plotly.express as px
### READ IN DATA ###
d = {
'one':
pd.Series([1., 2.],
index=[
'Jan/2020', 'Feb/2020',
])
}
df = pd.DataFrame(d)
print(f'\n# this is what I get from my datasource\n')
print(df.index)
print(df)
### CONVERT DATA ###
idx = df.index
df.index = pd.to_datetime(idx, format="%b/%Y").to_period(freq='M')
print(f'\n# after conversion\n')
print(df.index)
df.index.name = 'Monat'
print(df)
df = df.sort_index()
###THIS FIXES IT, BUT :/ ###
#df.index = df.index.astype(str)
fig = px.line(df, x=df.index, y=('one'), title='Testplot')
fig.show()
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Ejecuta primero la reproducción proporcionada con pandas y Plotly, y luego sigue cómo PeriodIndex llega a la serialización JSON y compárala con los índices de fecha y de cadenas compatibles. Se considera terminado cuando el ejemplo se renderiza sin requerir astype(str) y el comportamiento de PeriodIndex está cubierto por una prueba.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- pandas, python
- Área
- data-visualization
- Tipo de issue
- Nueva funcionalidad
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 35/100