Pandas 时间处理 获取数组中某月的数据

查看日期列的数据类型

以下演示使用df表示DataFrame二维数组

df.info() # 查看数组中每列的数据类型和数组基本信息

日期的类型为str时

1、str切片

使用切片有弊端,当日期字符串不连续的时候会造成漏选#不推荐

# 将日期列作为索引列
df.set_index('日期',replace=True)
# 使用切片获取9月数据
df.loc['2019/9/1':'2019/9/30',:]

源数据:

过滤后数据:

2、使用python中str内置的方法

str.startswith(str, beg=0,end=len(string))
返回值:True或False

# 由于str.startswith()返回bool类型值,df[bool列表]可取到为True的行数据
df[[i.startswith('2019/9/') for i in df['日期']]]

3、使用pandas中str内置的方法

Series.str.contains(pat, case=True, flags=0, na=None, regex=True)
参数:
pat:字符串或正则表达式
case:True区分大小写
regex:True默认pat为正则表达式
返回值:bool类型

df[df['日期'].str.contains('/9/')]

4、将日期的str类型转化datetime类型

# 转换类型
df['日期']=pd.to_datetime(df['日期'])
# 设置为索引
df.set_index('日期',inplace=True)
# 使用df.loc[,]进行时间获取
df.loc['2019-9',:]# 注意转化为datetime类型后,过滤的方式从2019/9/变成2019-9
原文地址:https://www.cnblogs.com/Wendy-r/p/14960733.html