版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Python数据分析基础与应用模块模块8Pandas时间序列操作与应用【应用与实战】【任务8-1】对日期时间数据进行灵活处理【任务描述】编写程序实现以下功能:(1)从Excel文件“orderInfo.xlsx”第1个工作表中获取“订单完成时间”和“商品金额”两列数据。(2)查看获取数据的列名称、数据类型、记录数量等相关信息。(3)单独提取“订单完成时间”数据,指定格式符为“'%Y-%m-%d”,将无效的数据解析设置为NaN。(4)查看数据集中各列数据的数据类型。(5)随机获取dataFrame中的5条销售日期数据(6)分别从“销售日期”中获取无时、分、秒的日期、年、月、日、季度和星期,并输出这些数据及对应数据类型。(7)将年份“2021、2022”、月份“2、3”、天数“4、15”、小时数“2、3”通过DataFrame结构组合为日期时间数据。(8)将前面从“销售日期”中提取的年、月、日数据重新组合为日期数据。(9)从“销售日期”中提取由年、月组成的数据。【任务实现】在JupyterNotebook开发环境中创建t8-01.ipynb,然后在单元格中编写代码与输出对应的结果。(1)读取Excel文件orderInfo.xlsx中的数据代码如下:importpandasaspdpath=r'data\orderInfo.xlsx'sales_df=pd.read_excel(path,usecols=['订单完成时间','商品金额'])(2)查看列名、数据类型、记录数量等相关信息代码如下:sales_()输出结果如下:<class'pandas.core.frame.DataFrame'>RangeIndex:9entries,0to8Datacolumns(total2columns):0订单完成时间9non-nulldatetime64[ns]1商品金额9non-nullfloat64dtypes:datetime64[ns](1),float64(1)memoryusage:272.0bytes(3)单独提取“订单完成时间”列数据提取“订单完成时间”列数据时指定格式符为“'Y-%m-%d”,将无效的数据解析为NaN。代码如下:sales_df['销售日期']=pd.to_datetime(sales_df['订单完成时间'],format='%Y-%m-%d',errors='coerce')(4)查看数据集中各列数据的数据类型代码如下:print(sales_df.dtypes)输出结果如下:订单完成时间datetime64[ns]商品金额float64销售日期datetime64[ns]dtype:object(5)随机获取DataFrame中的5条销售日期数据代码如下:print(sales_df["销售日期"].sample(5))输出结果如下:52021-02-2518:21:0522021-02-2011:11:5762021-03-1215:12:2802021-03-0620:40:1082021-03-2210:11:26Name:销售日期,dtype:datetime64[ns](6)从“销售日期”列获取日期数据分别从“销售日期”列中获取不包含时/分/秒的日期以及年、月、日、季度、星期数据,并输出这些数据。代码如下:sales_df['日期']=sales_df['销售日期'].dt.datesales_df['年']=sales_df['销售日期'].dt.yearsales_df['月']=sales_df['销售日期'].dt.monthsales_df['日']=sales_df['销售日期'].dt.daysales_df['季度']=sales_df['销售日期'].dt.quartersales_df['星期']=sales_df['销售日期'].dt.weekdaysales_df输出结果如下:(7)输出日期和时间数据对应的数据类型代码如下:sales_df.dtypes输出结果如下:订单完成时间atetime64[ns]商品金额float64销售日期datetime64[ns]日期object年int64月int64日int64季度int64星期int64dtype:object(8)组合日期和时间数据将年份2021和2022、月份2和3、天数4和15、小时数2和3通过DataFrame结构组合为日期和时间数据。代码如下:importpandasaspddf1=pd.DataFrame({'year':[2021,2022],'month':[2,3],'day':[4,15],'hour':[2,3]})pd.to_datetime(df1)输出结果如下:02021-02-0402:00:0012022-03-1503:00:00dtype:datetime64[ns]代码如下:df1=pd.to_datetime(df1[['year','month','day']])df1输出结果如下:02021-02-0412022-03-15dtype:datetime64[ns](9)将年、月、日数据组合为日期和时间数据将前面从“销售日期”列中提取的年、月、日数据重新组合为日期和时间数据。代码如下:df2=pd.DataFrame({'year':sales_df['年'],'month':sales_df['月'],'day':sales_df['日']})df3=pd.to_datetime(df2[['year','month','day']])df3输出结果如下:02021-03-0612021-03-0522021-02-2032021-02-2042021-03-0452021-02-2562021-03-1272021-03-1282021-03-22dtype:datetime64[ns](10)从“销售日期”列中提取由年、月组成的数据代码如下:sales_df['year_month']=sales_df['销售日期'].apply(lambdax:x.strftime('%Y-%m'))sales_df['year_month']输出结果如下:02021-0312021-0322021-0232021-0242021-0352021-0262021-0372021-0382021-03Name:year_month,dtype:object【任务8-2】分析股票数据时应用Pandas日期序列【任务描述】编写程序实现以下功能:(1)导入必要的模块。(2)导入数据。(3)对数据进行预处理。(4)绘制最高价与最低价趋势图。(5)获取特征参数。(6)绘制股票开盘价的年度趋势图。(7绘制股票多维度的直方图。(8)计算股票的每日收益并绘制图形。(9)绘制收盘价对数变换后的序列趋势图。(10)绘制收盘价移动平均和对数变换后的序列趋势图。【任务实现】在JupyterNotebook开发环境中创建t8-02.ipynb,然后在单元格中编写代码与输出对应的结果。1.导入模块代码如下:importpandasaspdimportnumpyasnpimportmatplotlib.pylabaspltplt.rcParams['font.sans-serif']=['SimHei']plt.rcParams['axes.unicode_minus']=False2.导入数据代码如下:path=r".\data\stock-10.xlsx"data=pd.read_excel(path)3.数据预处理代码如下:data=data.drop(columns="Unnamed:0")stock1=data.copy()stock1['date']=pd.to_datetime(stock1.date,format='%Y-%m-%d')stock1=stock1.set_index('date')stock1.head()输出结果如下:4.绘制最高价与最低价趋势图(1)绘制采样频率为天的最高价与最低价趋势图代码如下:stock1[['high','low']].plot(kind='line')plt.title('股票最高价与最低价')plt.show()输出结果如图8-2-1W所示。图8-2-1采样频率为天的最高价与最低价趋势图(2)绘制采样频率为月的最高价与最低价趋势图代码如下:stock1.resample('M').median()[['high','low']].plot(kind='line')plt.title('股票最高价与最低价')plt.show()输出结果如图8-2-2所示。图8-2-2采样频率为月的最高价与最低价趋势图(3)绘制采样频率为年的最高价与最低价趋势图代码如下:stock1.resample('Y').median()[['high','low']].plot(kind='line')plt.title('股票最高价与最低价')plt.show()输出结果如图8-2-3所示。图8-2-3采样频率为年的最高价与最低价趋势图5.获取特征参数(1)计算数据集中最早的日期和最晚的日期的间隔天数代码如下:(stock1.index.max()-stock1.index.min()).days输出结果如下:729(2)统计数据总月数代码如下:stock_months=stock1.resample('BM').mean()len(stock_months.index)输出结果如下:246.绘制股票开盘价的年度趋势图代码如下:stock_open=stock1['open'].plot(title="股票开盘价")fig=stock_open.get_figure()fig.set_size_inches(8,6)输出结果如图8-2-4所示。图8-2-4股票开盘价的年度趋势图7.绘制股票多维度的直方图代码如下:stock1[['high','low','open','close']].hist(figsize=(12,8))输出结果如图8-2-5所示。图8-2-5股票多维度的直方图8.计算股票的每日收益并绘制图形代码如下:stock1['DailyReturn']=stock1['close'].pct_change()plt.figure(figsize=(15,8))stock1['DailyReturn'].plot(legend=True,linestyle='--',marker='o',title='股票的每日收益')plt.show()输出结果如图8-2-6所示。图8-2-6股票的每日收益9.绘制收盘价对数变换后的序列趋势图代码如下:close1=stock1["close"]close_log=np.log(close1)close_log.plot()plt.show()输出结果如图8-2-7所示。图8-2-7收盘价对数变换
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年古代历史与美育素养测试
- 2026年北师大版小学语文四年级下册第7单元寓言故事阅读理解题库
- 2026年幼儿情绪管理能力测试题
- 2026年英语六级翻译与写作专项练习
- 2026年志愿者服务技巧与心理素质测试
- 车间检验考试题目及参考答案
- T∕CSF 0159-2026 林草生态产品价值核算服务组织能力评价规范
- 新材料产业发展趋势与挑战试题及答案
- 2026年重庆机场值机员考试试题及答案
- 幼儿园教师面试常见问题解析试题及答案
- GB/T 47770.1-2026家用快热式电热水器性能测试方法第1部分:总则
- 2026年河北省中考语文真题试卷及答案
- 2026-2030中国来氟米特市场运行状况监测与发展态势展望研究报告
- 化工生产防火防爆安全培训
- 2026新教材语文 18威尼斯的小艇 教学课件
- 2026年事业单位工作人员处分暂行规定及处分程序试题
- 西安智测无忧行测题库及答案
- 国企内纪检监察工作制度
- 电工入职考试题及答案
- (2025)临床产超广谱β-内酰胺酶肠杆菌目细菌感染应对策略专家共识课件
- 《DLT 2690.7-2023电供暖系统技术规范 第7部分:运营服务平台》专题研究报告
评论
0/150
提交评论