重采样错误:值错误:月份必须在 1..12 之间

1 投票
2 回答
14609 浏览
提问于 2025-04-29 08:34

我有一个.csv文件,我想把它的时间数据调整成每分钟一个数据点。

我这样做:

main  = pd.read_csv(pump, 
                    skiprows=12, 
                    index_col='Timestamp',
                    parse_dates=True
                    )

main = main.resample('1Min', how='max')

但是我遇到了一个错误:

ValueError: month must be in 1..12

我有点困惑,因为当我打印出来看看main的内容时,时间戳的格式是这样的:

时间戳
2014-04-15 00:00:00

暂无标签

2 个回答

1

我会把那个特定的列传递给下面的函数,然后改变日期、月份和年份的顺序。

def changedate_formate(df):
split = df.split('.')
a = split[1]
b = split[2]
c = split[0]

return ''.join(a+b+c)
1

根据我有限的信息和一些处理日期的经验,我猜你可能遇到了两个问题:

  1. 你的数据有问题,需要找出哪个月份不对。
  2. 你在解析时间戳时需要指定格式。你的程序可能把2014当成了月份。

infer_datetime_format : 布尔值,默认是False。如果设置为True,并且在某一列启用了parse_dates,那么程序会尝试推测日期时间的格式,以加快处理速度。

既然你认为已经排除了以上两种可能性,也许这个信息能帮到你。我看到的所有关于这个函数的例子,max的格式都是这样的:

ts.resample('1Min', how=np.max)

撰写回答