Python:datetime的转化、获取年月日、以及时间段筛选

本文介绍了如何在Python中使用pandas库处理CSV文件中的日期数据,包括将字符串转换为datetime类型,提取年、月、日,以及根据年、月、日进行数据筛选的方法。特别强调了区间筛选时需要注意的细节问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 导入pandas包

import pandas as pd

2. str转换为datetime

# 导入数据
df = pd.read_csv('stock.xlsx')
# 将'Date'列的字符串转换为python认识的日期格式
df['Date'] = pd.to_datetime(df['Date'])

此时运行:

type(df['Date'][0])

Python会告诉你,它的类型是“pandas._libs.tslibs.timestamps.Timestamp”

3. 获取datetime类型数据的年、月、日

# 获取年
df['Date'].dt.year
# 获取月
df['Date'].dt.month
# 获取日
df['Date'].dt.day

4. 时间段筛选

a. 仅根据年份进行筛选

# 以筛选出2022-2023年数据为例
df = df[df['Date'].dt.year.between(2022,2023)]

注意,此时between区间的左右端点都能被取到

b. 根据年、月进行筛选

# 筛选2022年1月-2023年12月的数据
df = df[(df['Date']>'2021-12-31') & (df['Date']<='2024-01-01')].reset_index(drop = True)

注意,此处不建议用以下代码

df = df[(df['Date']>='2022-01') & (df['Date']<'2024-01')].reset_index(drop = True)

这行代码:①不容易理解;②容易出错

简单来说,可以理解为'2022-01'表示2022年1月的第一天,'2024-01'为2024年1月的第一天,所以如果用这种写法,需要对①关系运算符②时间都非常小心

如果确实需要使用,建议多进行排列组合,确保不会出错

c. 根据年、月、日进行筛选

直接套用上方“根据年、月进行筛选”的公式即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值