以日期为X轴绘制DataFrame出现异常数据点,求错误排查
问题分析与解决方案
这个问题的核心是日期解析格式不明确导致的日期错位!
你的日期数据是DD/MM/YYYY格式(比如22/05/2018代表2018年5月22日),但pd.to_datetime()默认会自动推断日期格式。对于像05/02/2018这样的日期(日和月都≤12),它会错误地将其解析为2018年5月2日(而非正确的2018年2月5日)。
原本属于2月的低数值(比如29358.96)就被错误映射到了5月,这就是你看到绘图中5月出现异常低数据点的原因。
修正后的代码
只需要在pd.to_datetime()中明确指定日期格式即可解决问题:
import pandas as pd import matplotlib.pyplot as plt df = pd.read_csv("test.csv", header=None, names=['date', 'amount']) # 明确指定日期格式为DD/MM/YYYY,避免自动推断出错 df['time'] = pd.to_datetime(df['date'], format='%d/%m/%Y') df.set_index(['time'], inplace=True) df['amount'].plot() plt.show()
补充说明
通过format='%d/%m/%Y'告诉pandas日期的结构是「日/月/年」,这样所有日期都会被精准解析,数据点就能对应到正确的日期位置,不会再出现错位的异常值了。
内容的提问来源于stack exchange,提问作者Simd
相关产品推荐
相关产品推荐

