pandas提取某段时间范围数据的五种方法

import pandas as pd

#读取文件
df = pd.read_csv(filePath)

#获取九月份数据的几种方法
#方法一   使用行索引切片,['2019/9/1':'2019/9/30'],缺点是要求日期必须是连续的。为了方便查看取前5条,以下其他方法均取前5条,由于未进行排序,顺序会有差异
df.set_index('日期',inplace=True)
print(df['2019/9/1':'2019/9/30'].head())    #或者print(df.loc['2019/9/1':'2019/9/30',:]) 
'''
打印:
         最高温度 最低温度    天气   风向  风级 空气质量
日期                                    
2019/9/1  33℃  19℃  多云~晴  西南风  2级    良
2019/9/2  34℃  20℃     晴   南风  2级    良
2019/9/3  33℃  20℃     晴  东南风  2级    良
2019/9/7  34℃  21℃     晴  西南风  2级    良
2019/9/8  35℃  22℃  晴~多云  东北风  2级    良
'''

#方法二   利用列表生成式和startwith('2019/9')生成bool列表,缺点,比较麻烦。
print(df.loc[[True if i.startswith('2019/9') else False for i in df.index.tolist()],:].head())
'''
打印:
         最高温度 最低温度    天气   风向  风级 空气质量
日期                                    
2019/9/4  32℃  19℃     晴  东南风  2级    良
2019/9/5  33℃  20℃     晴  东南风  2级    良
2019/9/6  33℃  20℃     晴  东南风  1级    良
2019/9/1  33℃  19℃  多云~晴  西南风  2级    良
2019/9/2  34℃  20℃     晴   南风  2级    良
'''

#方法三   利用pandas的str和startswith('2019/9')|contains('2019/9')。
df1 = pd.read_csv('./TianQi.csv')
print(df1[df1['日期'].str.startswith('2019/9')].head())
'''
打印:
         日期 最高温度 最低温度    天气   风向  风级 空气质量
243  2019/9/4  32℃  19℃     晴  东南风  2级    良
244  2019/9/5  33℃  20℃     晴  东南风  2级    良
245  2019/9/6  33℃  20℃     晴  东南风  1级    良
246  2019/9/1  33℃  19℃  多云~晴  西南风  2级    良
247  2019/9/2  34℃  20℃     晴   南风  2级    良
'''

#方法四    讲日期转换成datetime类型
df1['日期'] = pd.to_datetime(df1['日期'])
df1.set_index('日期',inplace=True,drop=True)
#print(df1['2019'])    #取2019年数据,或者df.loc['2019']
print(df1['2019/09'].head())    
'''
 取201909月数据,其他变形写法df['2019-9']  df['2019-09']  df['2019/9']  df.loc['2019-9',:] df.loc['2019-09',:] df.loc['2019/09',:]  df.loc['2019/9',:]
打印:
           最高温度 最低温度    天气   风向  风级 空气质量
日期                                      
2019-09-04  32℃  19℃     晴  东南风  2级    良
2019-09-05  33℃  20℃     晴  东南风  2级    良
2019-09-06  33℃  20℃     晴  东南风  1级    良
2019-09-01  33℃  19℃  多云~晴  西南风  2级    良
2019-09-02  34℃  20℃     晴   南风  2级    良
'''
#注意如果要获取某一天的数据,则必须使用切片,比如df['2019/9/1':'2019/9/1'] 
'''
获取一段时间
df1.truncate(after = '2019-9-01') # 返回 after 以前的数据
df1.truncate(before = '2019-9-01') # 返回 before 以后的数据
df1['20190901':'2019/9/10']
'''

#方法五    #读取文件时,通过parse_dates=['日期'],将日期转化为datetime类型,相当于 pd.to_datetime。同时可以使用index_col将那一列作为的行索引,相当有set_index。
df2 = pd.read_csv('./TianQi.csv',parse_dates=['日期'])
df2['年'] = df2['日期'].dt.year
df2['月'] = df2['日期'].dt.month
qstr = "年=='2019' and 月=='9'"
print(df2.query(qstr).head())
'''
打印:
            日期 最高温度 最低温度    天气   风向  风级 空气质量     年  月
243 2019-09-04  32℃  19℃     晴  东南风  2级    良  2019  9
244 2019-09-05  33℃  20℃     晴  东南风  2级    良  2019  9
245 2019-09-06  33℃  20℃     晴  东南风  1级    良  2019  9
246 2019-09-01  33℃  19℃  多云~晴  西南风  2级    良  2019  9
247 2019-09-02  34℃  20℃     晴   南风  2级    良  2019  9
'''

'''
dt的其他常用属性和方法如下:
df['日期'].dt.day   # 提取日期
df['日期'].dt.year # 提取年份
df['日期'].dt.hour # 提取小时
df['日期'].dt.minute # 提取分钟
df['日期'].dt.second # 提取秒
df['日期'].dt.week # 一年中的第几周
df['日期'].dt.weekday # 返回一周中的星期几,0代表星期一,6代表星期天
df['日期'].dt.dayofyear # 返回一年的第几天

df['日期'].dt.quarter # 得到每个日期分别是第几个季度。
df['日期'].dt.is_month_start # 判断日期是否是每月的第一天
df['日期'].dt.is_month_end # 判断日期是否是每月的最后一天
df['日期'].dt.is_leap_year # 判断是否是闰年
df['日期'].dt.month_name() # 返回月份的英文名称
df['日期'].dt.to_period('Q') # M 表示月份,Q 表示季度,A 表示年度,D 表示按天

df['日期'].dt.weekday_name # 返回星期几的英文 由于pandas版本问题,改变pandas版本在cmd中输入:pip install --upgrade pandas==0.25.3
Series.dt.normalize() # 函数将给定系列对象中的时间转换为午夜。
'''

 方法四比较好用

  • 9
    点赞
  • 72
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 在 Python 中,可以使用 numpy 和 pandas 这两个库来进行股票数据分析。 使用 numpy: - 你可以使用 numpy 的 loadtxt() 函数来读取股票数据文件,例如 CSV 文件。 使用 pandas: - 你可以使用 pandas 的 read_csv() 函数来读取股票数据文件,例如 CSV 文件。 - 你还可以使用 pandas 的 DataFrame 类型来存储和处理股票数据。 DataFrame 可以被看作是一个二维表格,其中包含多行和多列。你可以使用类似于 Excel 的方式来访问和操作 DataFrame 中的数据。 例如,你可以使用以下代码来读取 CSV 文件并将其存储在 DataFrame 中: ``` import pandas as pd df = pd.read_csv('stock_data.csv') ``` 然后,你可以使用 DataFrame 的各种方法提取和处理数据,例如: - df.head() 可以显示 DataFrame 的前几行 - df.tail() 可以显示 DataFrame 的后几行 - df['column_name'] 可以访问 DataFrame 中的某一列 - df.describe() 可以计算 DataFrame 中数值型列的统计信息 有关使用 numpy 和 pandas 进行股票数据分析的更多信息,你可以参考官方文档或搜索在线教程。 ### 回答2: 对于numpy和pandas库而言,在Python中进行股票数据分析时,可以使用它们来提取数据。 首先,numpy是一个强大的数学库,可以在Python中进行数值计算和矩阵运算。在股票数据分析中,可以使用numpy库中的函数来处理和计算一维或多维数组。例如,可以使用numpy中的函数来计算收盘价的平均值、最大值、最小值等统计指标。此外,numpy提供了一些方便的函数来处理缺失值、数据排序以及数组的拼接和切片等操作,这些功能对于股票数据分析非常有用。 其次,pandas是一个数据处理和分析库,它建立在numpy的基础上,提供了更高级的数据结构和功能,可以用于更方便地操作和分析股票数据pandas的主要数据结构是DataFrame,它类似于Excel中的一张表,可以方便地存储和处理二维数据。在股票数据分析中,可以使用pandas来读取和处理CSV或Excel格式的股票数据文件,将数据转化为DataFrame的形式进行分析。通过pandas,可以方便地进行数据过滤、排序、分组和计算等操作,同时还可以使用pandas时间序列功能来处理和分析时间相关的股票数据。 总结来说,numpy和pandas是Python中常用的数据处理和分析库,在股票数据分析中,可以通过numpy来进行一些数值计算和数组操作,而pandas则更适用于读取、处理和分析股票数据,提供了丰富的功能和数据结构来便于进行数据分析和监视。使用这两个库可以方便地提取和处理股票数据,进而进行更深入的数据分析和决策。 ### 回答3: 在使用numpy和pandas进行股票数据分析时,可以通过几种方式提取数据。 首先,可以使用numpy和pandas的基本操作方法,如切片、索引和过滤来提取数据。比如,使用切片操作可以按照时间范围提取特定的股票数据,或者按照股票代码提取特定股票的数据。通过使用索引,可以提取指定列或行的数据,如提取收盘价、成交量等特定的指标数据。 其次,numpy和pandas提供了一些高级功能,如函数和方法,可以帮助更灵活地提取数据。例如,可以使用pandas的groupby函数按照特定的条件对数据进行分组,并计算分组后的统计指标。另外,numpy和pandas还提供了一些时间序列分析的方法,如滚动窗口函数rolling和指数加权移动平均函数ewm,可以用来提取特定时间段的数据并进行分析。 此外,如果需要从外部数据源获取股票数据,可以使用pandas的read_csv函数读取csv文件,或者使用pandas-datareader库向在线数据接口请求股票数据。 综上所述,使用numpy和pandas进行股票数据分析时,可以利用基本操作和高级功能来提取和处理数据,以满足不同的需求。这些工具的强大功能和灵活性使得股票数据分析更加方便和高效。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值