当前位置: 首页 > news >正文

城阳区城市规划建设局网站信息技术的网站建设是什么

城阳区城市规划建设局网站,信息技术的网站建设是什么,中小网站建设,天津做网站哪个公司好#xff08;博文体系参考#xff1a;《Python数据分析与应用》课本#xff09; 任务数据如下#xff1a; 读入csv文件时#xff0c;encoding必须是正确的#xff0c;常用的编码格式有#xff1a;UTF-8 , UTF-16 , GBK , GB2312 , GB18030等。 如果和文件的编码格式不符…博文体系参考《Python数据分析与应用》课本 任务数据如下 读入csv文件时encoding必须是正确的常用的编码格式有UTF-8 , UTF-16 , GBK , GB2312 , GB18030等。 如果和文件的编码格式不符合时则会报错 import pandas as pdpath D:/mystudy/大三上学期作业/PythonPython/chapter4/第4章任务数据/data/meal_order_info.csv order1 pd.read_csv(path,sep,,encoding utf-8) # 默认格式就是utf-8报错 UnicodeDecodeError: utf-8 codec cant decode byte 0xc3 in position 0: invalid continuation byte 比较读入文件的sep参数不同时读入文件的不同 order1 pd.read_csv(path,sep,,encoding gbk)order2 pd.read_csv(path,sep;,encoding gbk)order3 pd.read_csv(path,sep,encoding gbk)可以用os库中的os.listdir()函数来查看当前文件夹下的所有文件 import os print(os.listdir()) type(os.listdir())输出 [meal_order_detail.xlsx,meal_order_detail1.sql,meal_order_detail2.sql,meal_order_detail3.sql,meal_order_info.csv,test.py,users.xlsx,数据特征说明.xlsx]list 查看当前目录的子文件夹下的文件目录假设现在在“第四章任务数据”子文件夹下绝对目录认为是本博文第一段代码中的path路径 os.listdir(../data/)输出未实际运行但理论上是这样 [meal_order_detail.xlsx,meal_order_detail1.sql,meal_order_detail2.sql,meal_order_detail3.sql,meal_order_info.csv,test.py,users.xlsx,数据特征说明.xlsx]可以将数据以csv文件格式或者是xls文件格式也就是Excel对应的保存到本地。  关于pandas的重要部分DataFrame 注意取元素的时候尽量用index而不是直接取行因为数据可能被改变过了。 我们先来看一下order1读入的具体内容并且查看一下order1的类型 注意到最左侧的列一定是行的索引索引为0的行是标题(用.column获取) 注意不论是DataFrame还是Series访问索引的唯一方法只有  .index没法用loc或者其他方法获取到 print(查看order1的主要参数) print(values:) print(order1.values) print(index:) print(order1.index) print(columns:) print(order1.columns) print(dtypes:) print(order1.dtypes)输出查看order1的主要参数 values: [[417 1442 4 ... 1 18688880641 苗宇怡][301 1095 3 ... 1 18688880174 赵颖][413 1147 6 ... 1 18688880276 徐毅凡]...[692 1155 8 ... 1 18688880327 习一冰][647 1094 4 ... 1 18688880207 章春华][570 1113 8 ... 1 18688880313 唐雅嘉]] index: RangeIndex(start0, stop945, step1) columns: Index([info_id, emp_id, number_consumers, mode, dining_table_id,dining_table_name, expenditure, dishes_count, accounts_payable,use_start_time, check_closed, lock_time, cashier_id, pc_id,order_number, org_id, print_doc_bill_num, lock_table_info,order_status, phone, name],dtypeobject) dtypes: info_id int64 emp_id int64 number_consumers int64 mode float64 dining_table_id int64 dining_table_name int64 expenditure int64 dishes_count int64 accounts_payable int64 use_start_time object check_closed float64 lock_time object cashier_id float64 pc_id float64 order_number float64 org_id int64 print_doc_bill_num float64 lock_table_info float64 order_status int64 phone int64 name object dtype: object .  注意DataFrame可以转置 有了转置操作的加持许多需求就变得简单了。 . 注意DataFrame可以做运算比如乘法运算 输入注意两个int类型的Series是可以做乘法的 order1[info_id]*order1[emp_id]Out[87]: 0 601314 1 329595 2 473711 3 483890 4 428848940 701895 941 731808 942 799260 943 707818 944 634410 Length: 945, dtype: int64 .  1.查看DataFrame中数据 使用命令 order1[info_id] # 当成字典去访问要加单引号或order1.info_id # 当成dataframe中的属性去访问不需要加单引号输出0 417 1 301 2 413 3 415 4 392... 940 641 941 672 942 692 943 647 944 570 Name: info_id, Length: 945, dtype: int64虽然都可以访问但是推荐第一种因为避免和关键字重名或是列名为123这样的数字字符串等容易引起混淆 注意将DataFrame转置后则不能这样用上述方法数据了 下面来学习取出一列多列所有列的元素。 但是要注意一个区别这里的第一个中括号代表的不是行索引而是属性列 想要访问索引的唯一方法就是调用.index函数 同时还有两个函数送上.head(x).tail(x) 分别用来访问前x个后x个。不传参数则默认为5 当然还有访问操作更加灵活的.loc[]和.iloc[]函数注意是中括号这个后面再说 请取出‘info_id’这一个Series中的前三个元素 输入 order1[info_id][0:3]Out[43]: 0 417 1 301 2 413 Name: info_id, dtype: int64输入 order1[info_id].shapeOut[45]: (945,)输入 type(order1[info_id])Out[46]: pandas.core.series.Series 请取出info_id和emp_id这两列的前三个元素 输入 order1[[info_id,emp_id]].shape #注意别忘了里面这一层中括号他需要传入一个listOut[48]: (945, 2)输入 order1[[info_id,emp_id]][0:3]Out[49]: info_id emp_id 0 417 1442 1 301 1095 2 413 1147输入 order1[[info_id,emp_id]].head(3) #不传参数则默认为5列Out[53]: info_id emp_id 0 417 1442 1 301 1095 2 413 1147 取出所有列的前三个元素 输入 order1[:][0:3]Out[50]: info_id emp_id number_consumers ... order_status phone name 0 417 1442 4 ... 1 18688880641 苗宇怡 1 301 1095 3 ... 1 18688880174 赵颖 2 413 1147 6 ... 1 18688880276 徐毅凡[3 rows x 21 columns]输入 order1[:][0:3].shapeOut[51]: (3, 21) 下面来介绍兄弟函数loc[]和iloc[]函数其实就是和array几乎一样的多维访问方式了这两个函数的区别仅在对参数的要求有部分区别。当然也有交叉重叠的部分 注意loc[]函数传入的行索引是前闭后闭区间iloc[]函数传入的行索引和列索引都是前闭后开 报错系列 order1.iloc[0:3,info_id]order1.loc[0:3,0:3]无错系列 order1.loc[0:3,info_id]order1.loc[0:3,:]order1.iloc[0:3,0:3]order1.iloc[0:3,:]例子 前两个例子的输出一致输入1 order1.iloc[0:3,[0,1,2]]Out[65]: info_id emp_id number_consumers 0 417 1442 4 1 301 1095 3 2 413 1147 6输入2 order1.iloc[0:3,0:3]Out[62]: info_id emp_id number_consumers 0 417 1442 4 1 301 1095 3 2 413 1147 6输入3我也不知道为啥标签变成行了....求大佬告知 order1.iloc[3,[0,1,2]]Out[66]: info_id 415 emp_id 1166 number_consumers 4 Name: 3, dtype: object输入4loc极其灵活第一维可以传入表达式来筛选行就和数据库的select语句一样灵活iloc却不行根本原因在于表达式语句返回一个bool类型的Series而iloc可接收的数据类型不包括Series但非要使用iloc也是可以的比较麻烦在返回的Series中取其value让他变成一个bool类型的array即可。 order1.loc[order1[number_consumers]5,[number_consumers,info_id]]Out[72]: number_consumers info_id 38 5 688 43 5 317 71 5 831 97 5 266 126 5 712 .. ... ... 852 5 1017 858 5 1025 870 5 1104 896 5 1300 911 5 588[71 rows x 2 columns] 其实还有一种ix[]方法但是效率低于loc和iloc所以在此不做介绍。 2.修改DataFrame中数据 注意修改前先备份原文件order2 order1.copy() 尽量使用loc[]或者iloc[]而不是用属性去访问原因不详反正会有warning有懂的大神欢迎讨论区讨论 目前思考原因和二维array中取数不能直接[x][y]而应该[x , y]是一个道理对于array你直接[][]相当于对得到的第一个一维数组再去取值所以速度会慢很多而且这样不是标准写法。对于这里warning表示的是你对一个slice的一个切片相当于是一个临时变量副本然后你再对他进行操作所以他给了你一个提示所以这样取数字的时候不会给你这个warning但是当你改变值的时候就给你这样一个警示让你检查一下语法是否正确所以对于DataFrame一般来说这样二维操作取数没有问题对于一维的运算也没有任何问题可以任意使用但是对于二维问题的赋值操作需要谨慎所以一般还是用loc[]比较常见以上仅时个人意见不具有权威性。反正对于下面用到的order1[use_start_time] pd.to_datetime(order1[use_start_time])这一句对一维的赋值操作是不会有任何问题的也就是说按照属性直接取值是可以的但是对于[][]这样的二维切片操作就要注意了 输入 order1[info_id][0] 400警告 __main__:1: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrameSee the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy输入 order1.loc[0,info_id] 417无警告 3.增添DataFrame中数据 新增一列 输入1前面提到了两个int类型的Series是可以做乘法的 order1[hahaha]order1[info_id]*10 order1[hahaha]Out[84]: 0 4170 1 3010 2 4130 3 4150 4 3920940 6410 941 6720 942 6920 943 6470 944 5700 3.删除DataFrame中数据 输入1注意可以一口气删多列 order1.drop(labels[order_status,lock_table_info],axis1) #当labels是列标的时候axis1Out[29]: info_id emp_id number_consumers ... print_doc_bill_num phone name 0 417 1442 4 ... NaN 18688880641 苗宇怡 1 301 1095 3 ... NaN 18688880174 赵颖 2 413 1147 6 ... NaN 18688880276 徐毅凡 3 415 1166 4 ... NaN 18688880231 张大鹏 4 392 1094 10 ... NaN 18688880173 孙熙凯 .. ... ... ... ... ... ... ... 940 641 1095 8 ... NaN 18688880307 李靖 941 672 1089 6 ... NaN 18688880305 莫言 942 692 1155 8 ... NaN 18688880327 习一冰 943 647 1094 4 ... NaN 18688880207 章春华 944 570 1113 8 ... NaN 18688880313 唐雅嘉[945 rows x 19 columns]输入2删除第0行 order1.drop(labels0,axis0)Out[30]: info_id emp_id number_consumers ... order_status phone name 1 301 1095 3 ... 1 18688880174 赵颖 2 413 1147 6 ... 1 18688880276 徐毅凡 3 415 1166 4 ... 1 18688880231 张大鹏 4 392 1094 10 ... 1 18688880173 孙熙凯 5 381 1243 4 ... 1 18688880441 沈晓雯 .. ... ... ... ... ... ... ... 940 641 1095 8 ... 1 18688880307 李靖 941 672 1089 6 ... 1 18688880305 莫言 942 692 1155 8 ... 1 18688880327 习一冰 943 647 1094 4 ... 1 18688880207 章春华 944 570 1113 8 ... 1 18688880313 唐雅嘉[944 rows x 21 columns]关于时间模块 将字符串时间转换成标准时间 注意那些有趣的函数都是来自datatime库的而不是numpy库有兴趣的同学可以学一下datatime库 以上类型概念上理解分成两类一类代表时间点一类代表时间段。 字符串转换成标准时间分成三类 1.直接转化成Timestamp格式 将字符串转换成标准时间的代码十分简短这里提供两种方式其实本质上是一种只不过一种是以属性形式去访问另一种是loc[]去访问 order1.loc[:,lock_time] pd.to_datetime(order1.loc[:,lock_time])order1[use_start_time] pd.to_datetime(order1[use_start_time])Timestamp类型时间代表时间点可以进行减法比如用终止时间减去起始时间取出那个min如果这个min小于0那么肯定是异常值了也就是说这是处理异常值的一个方法。 2.直接转化成 DatatimeIndex类型 不常用不介绍 3.直接转化成PeriodIndex类型 不常用不介绍 提取时间序列数据信息 样例代码 yy [item.year for item in order1[lock_time]]输出会是一个list 加减时间数据学习Timedelta类 对于时间可以做加法也可以做减法。但是作为Timestamp类型一定要注意加完或减完的范围一定要在 1677-09-21 到 2262-04-11 之间 加减时间数据练习及加深理解  在对话框中按照顺序输入下面代码输入1 df_Update[ListingInfo1]Out[74]: 0 2014-03-05 1 2014-03-05 2 2014-03-05 3 2014-03-05 4 2014-03-05372458 2014-03-05 372459 2014-03-05 372460 2014-03-05 372461 2014-03-05 372462 2014-03-05 Name: ListingInfo1, Length: 372463, dtype: timedelta64[ns]输入2 df_Update[ListingInfo1] df_Update[ListingInfo1] pd.to_datetime(2014-03-05 11:22:33)报错输入3 df_Update[ListingInfo1] df_Update[ListingInfo1] - pd.to_datetime(2014-03-05 11:22:33)df_Update[ListingInfo1] Out[77]: 0 -1 days 12:37:27 1 -1 days 12:37:27 2 -1 days 12:37:27 3 -1 days 12:37:27 4 -1 days 12:37:27372458 -1 days 12:37:27 372459 -1 days 12:37:27 372460 -1 days 12:37:27 372461 -1 days 12:37:27 372462 -1 days 12:37:27 Name: ListingInfo1, Length: 372463, dtype: timedelta64[ns]输入4df_Update[ListingInfo1] df_Update[ListingInfo1] pd.to_datetime(2014-03-05 11:22:33)df_Update[ListingInfo1]Out[79]: 0 2014-03-05 1 2014-03-05 2 2014-03-05 3 2014-03-05 4 2014-03-05372458 2014-03-05 372459 2014-03-05 372460 2014-03-05 372461 2014-03-05 372462 2014-03-05 Name: ListingInfo1, Length: 372463, dtype: datetime64[ns]输入5df_Update[ListingInfo1] df_Update[ListingInfo1] pd.Timedelta(seconds 1)df_Update[ListingInfo1]Out[81]: 0 2014-03-05 00:00:01 1 2014-03-05 00:00:01 2 2014-03-05 00:00:01 3 2014-03-05 00:00:01 4 2014-03-05 00:00:01372458 2014-03-05 00:00:01 372459 2014-03-05 00:00:01 372460 2014-03-05 00:00:01 372461 2014-03-05 00:00:01 372462 2014-03-05 00:00:01 Name: ListingInfo1, Length: 372463, dtype: datetime64[ns]输入6df_Update[ListingInfo1][0] df_Update[ListingInfo1][0] - pd.Timedelta(seconds 1)报warning但是依旧可以执行 __main__:1: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrameSee the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy输入7df_Update[ListingInfo1]Out[84]: 0 2014-03-04 23:59:59 1 2014-03-05 00:00:00 2 2014-03-05 00:00:00 3 2014-03-05 00:00:00 4 2014-03-05 00:00:00372458 2014-03-05 00:00:00 372459 2014-03-05 00:00:00 372460 2014-03-05 00:00:00 372461 2014-03-05 00:00:00 372462 2014-03-05 00:00:00 Name: ListingInfo1, Length: 372463, dtype: datetime64[ns] 对于求访问数据类型的几种方法 要么就是直接用DataFrame的dtypes函数别落下了s 要么就是单独取出一个数据出来type()或者直接输出一般也会给出对应的类型 但是为什么 会不一样百思不得其解 答可能是Console的原因吧我print一下就好了 end
http://www.yutouwan.com/news/130063/

相关文章:

  • 2345网址导航官方网站互联网门户网站是什么
  • 站长之家官网网址上海比较好的装修公司
  • 网站建设自主建设美术对网站开发有用吗
  • 网站建设业务员招聘学院宣传网站制作
  • 沃航科技网站开发青海公路建设服务网站
  • 网站百度文库建设厅报名网站
  • 七星彩网投网站建设广东建设继续教育网站
  • 手机怎么做网站卖东西上海传媒公司ceo是谁
  • 组工网站档案数字化建设字体设计软件免费
  • 酉阳网站建设无线ap组网方案
  • 做网站哪里最便宜seo公司赚钱吗
  • 明年做哪个网站致富wordpress 内网慢
  • 台州网站建设外包网站业务需求文档
  • 网站开发微信端搭建网站流程
  • 企业电子商务网站开发实训目的泉州市做网站
  • 企业网站什么意思wordpress用户上传资源验证码
  • 网站里会自动换图怎么做网站添加备案信息
  • 临海市城乡建设规划局网站辽宁沈阳建设工程信息网站
  • 上线了做的网站怎么办花溪建设村镇银行官方网站
  • 新网站如何做友情链接定南网站建设
  • 网站安全检测中心云南智能建站
  • 怎么做简单的视频网站国外室内设计案例网站
  • 平台网站如何优化wordpress首页调用图片不显示
  • 三只松鼠网络营销策划书网站改版seo建议
  • 中升乙源建设工程有限公司网站网站百度权重怎么提升
  • 网站建设期间工作总结手机发博客wordpress
  • 网站制作方案包含哪些内容wordpress php版本太低
  • 构建企业网站自己怎么做商城网站吗
  • 邯郸集团网站建设邢台交友123
  • 个人建站模板网站推广总结