Estoy tratando de abrirme camino a través de este tutorial de RealPython en el paquete de visualización de Python llamado bokeh https://realpython.com/lessons/using-columndatasource-object/#transcript. Esta versión de video tiene 2,5 años y la versión de texto que la precedió tiene 3,5 años https://realpython.com/python-data-visualization-bokeh/#generating-your-first-figure. No hace falta decir que aquí y allá tampoco funcionan como se esperaba debido a cambios en los programas afectados.
En este punto en particular, estoy tratando de poner un índice de fecha y hora en un marco de datos que se creó a partir de algunos datos CSV. El problema es que cada vez que ejecuto esto, una vez anoche y dos veces esta mañana, todo el sistema se congela y tengo que reiniciar la computadora. No hay mensaje de error u otra salida.
Python 3.9.12 bokeh 2.4.2 pandas 1.3.3 Ubuntu 20.04 LTS PyCharm 2020.1
Aquí está el guión:
import pandas as pd
from pandas import Timestamp
from datetime import datetime, date
import time
start = time.time()
player_stats = pd.read_csv('data/2017-18_playerBoxScore.csv', index_col='gmDate')
team_stats = pd.read_csv('data/2017-18_teamBoxScore.csv', index_col='gmDate')
standings = pd.read_csv('data/2017-18_standings.csv', index_col='stDate')
dti_p = pd.DatetimeIndex(player_stats.index)
dti_t = pd.DatetimeIndex(team_stats.index)
dti_s = pd.DatetimeIndex(standings.index)
player_stats.replace(to_replace=player_stats.index, value=dti_p, inplace=True)
team_stats.replace(to_replace=team_stats.index, value=dti_t, inplace=True)
standings.replace(to_replace=standings.index, value=dti_s, inplace=True)
end = time.time()
prgrm = start-end
print(f"start: {start}")
print(f"total time = {prgrm}")
print(f"end: {end}")
Esta versión usa DatetimeIndex() y replace(), pero anteriormente probé.apply() y Timestamp.date() sin éxito. Al escribir esta publicación, ejecuté el script nuevamente solo para ver qué cobertura y el depurador me darían antes de publicar y ahora, por razones que no puedo explicar, recibo un error:
/home/malikarumi/.virtualenvs/chronicle/lib/python3.9/site-packages/pandas/core/indexing.py
def _validate_key_length(self, key: Sequence[Any]) -> None:
line 791 → if len(key) > self.ndim:
raise IndexingError("Too many indexers")
(<class 'pandas.core.indexing.IndexingError'>, IndexingError('Too many indexers'), <traceback object at 0x7fe8c8d45b80>)
Su ayuda muy apreciada.
Solución del problema
¿Esto da el resultado deseado? (para player_stats
)
player_stats = pd.read_csv('data/2017-18_playerBoxScore.csv')
player_stats['gmDate'] = pd.to_datetime(player_stats['gmDate'])
player_stats.set_index('gmDate', inplace=True)
No hay comentarios.:
Publicar un comentario