You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中从含Date、Price列的CSV提取1999-2019年数据的疑问

解决CSV提取1999-2019年数据的问题

先给你修正后的可行代码,再拆解问题点:

import datetime
import pandas as pd

# 先确保Date列是datetime类型(读取CSV时若未自动转换则需执行)
df['Date'] = pd.to_datetime(df['Date'])

# 提取1999年1月1日(含)至2019年12月31日(含)的数据
df = df[(df['Date'] >= datetime.date(1999, 1, 1)) & (df['Date'] <= datetime.date(2019, 12, 31))]

原代码的核心问题:

  • 大小写错误:Python的datetime模块中日期类是小写的date,原代码里的datetime.Date会直接报错。
  • 边界逻辑偏差:原代码用>和<会排除1999年1月1日当天的数据,且仅取到2018年12月31日(因为小于2019-1-1),若要覆盖2019全年,需调整为<= datetime.date(2019,12,31)。
  • 日期类型不匹配:如果CSV读取后Date列是字符串格式,直接和datetime.date对象比较会失效,必须先用pd.to_datetime()转换为datetime类型。

另外可以用pandas更简洁的日期切片写法(需先将Date列设为索引,或确保列是datetime类型):

df = df.loc['1999-01-01':'2019-12-31']

内容的提问来源于stack exchange,提问作者Olakunle

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 13:15:19