Python中无法正确可视化D/M/Y h/m/s格式时间序列问题
解决D/M/Y h/m/s格式时间序列可视化异常问题
问题根源是pandas默认的日期解析逻辑——它会优先按M/D/Y格式解析日期字符串,而你的数据是D/M/Y格式。当日期中的“日”大于12时,解析会失败或错位,导致后续时间索引混乱,最终图表显示异常。
直接用以下两种方法修正即可:
方法1:指定日在前解析规则
import pandas as pd import matplotlib.pyplot as plt cars = pd.read_csv( 'time_series.csv', parse_dates=['Ldatetime'], index_col='Ldatetime', dayfirst=True # 明确告知pandas日期格式是日在前 ) cars.plot() plt.show()
方法2:精确匹配日期格式(推荐)
如果你的日期格式固定为D/M/Y h/m/s,直接指定格式字符串解析效率更高,也能彻底避免歧义:
import pandas as pd import matplotlib.pyplot as plt def parse_date(date_str): return pd.to_datetime(date_str, format='%d/%m/%Y %H:%M:%S') cars = pd.read_csv( 'time_series.csv', parse_dates=['Ldatetime'], index_col='Ldatetime', date_parser=parse_date ) cars.plot() plt.show()
修改后pandas会正确识别所有时间点,时间序列索引连续,图表就能正常展示全部数据,同时时间也会被系统正确识别。
内容的提问来源于stack exchange,提问作者Rally Dr
相关产品推荐
相关产品推荐

