
Python学习记录
主要记录了Python的基础内容
苏小败在路上
不一样的人生
展开
-
Python-Pandas之HDFStore读写的奇葩问题
这次往我一个老的HDF文件里面写新的数据,报了下面这个错:HDF5ExtError Traceback (most recent call last)~/anaconda3/lib/python3.6/site-packages/tables/node.py in __init__(self, parentnode, name, _...原创 2020-03-26 18:43:04 · 5838 阅读 · 0 评论 -
Python-Pandas之两个Dataframe的比较(四)
昨天在外网找到一个比较dataframe的好库,叫datacompy,它的优点有:1、可以把对比后的信息详情打印出来,比如列是否相等,行是否相等;2、在数据中如果有不相等列,那么就只比较相同的列;3、可以设置绝对差值和相对差值,比如我们比较有浮点数的数据时,设置下绝对差值为0.01,后面的一系列微小的值就忽略了;4、在数据报告中,每一列的数据类型、不相等数量、最大差值和空值都详细列...原创 2020-03-24 09:20:05 · 21845 阅读 · 5 评论 -
Python-Pandas之两个Dataframe的比较(三)
昨天使用了 hashlib 库,今天直接使用 Dataframe 自带的函数去比较两个 df一,使用 equals 函数对比:import sys, sqlite3, pandas as pdfiles = []try: files = [sys.argv[1], sys.argv[2]]except: print('命令行未检测到文件参数。')# 这个方式可以...原创 2020-03-20 18:09:32 · 17350 阅读 · 2 评论 -
Python-Pandas之两个Dataframe的比较(二)
今天找到一个好方法,可以直接比较两个df,这个方法包含在hashlib库里面,代码如下:import hashlib, sysfiles = []try: files = [sys.argv[1], sys.argv[2]]except: print('命令行未检测到文件参数。')# 这个方式可以通过命令行运行:# # python3 cmpfiles....原创 2020-03-19 09:10:03 · 6763 阅读 · 0 评论 -
Python-Pandas之Dataframe的比较记录
最近需要做dataframe之间的比较,看看两个df之间是否相同,百度之后,有一个好的方式,就是将df的值先转化成行向量,然后用向量比较,得到一个ndarray的数组,里面只有True和False,其中False,表示两个向量不同,我们只需要判断里面是否有False就可以知道是否完全相等。下面是代码:def compare_values(df1, df2): df1_r...原创 2019-08-19 13:52:13 · 7957 阅读 · 1 评论 -
Python-好用的网址记录
1、datetime格式化字符串时,用到的匹配符,比如‘%d’表示当月天数,‘%Y’表示年,其他的可以参考这里:https://www.cnblogs.com/fwl8888/p/9635505.html2、pandas的API,主要用到了Dataframe和Series:https://pandas.pydata.org/pandas-docs/stable/reference/ap...原创 2019-08-16 09:15:28 · 227 阅读 · 0 评论 -
Python-Pandas学习之HDFStore存储数据警告(your performance may suffer as PyTables will pickle....)
这是一个类似数据表字典的格式,可以将很多的数据帧(dataframe)保存在一个对象里面。每一个数据帧,都标有一个key,然后通过key来访问数据帧的数据。但是,在使用HDF的时候,如果不指定格式,那么我们数据中存在string类型的数据,就会报以下警告:PerformanceWarning: your performance may suffer as PyTables will...原创 2019-07-22 18:29:25 · 10364 阅读 · 2 评论 -
Python-datetime库中datetime与numpy库中datetime的转换
目前要用到pandas处理数据,在获取到日期时间的时候,默认是numpy.datetime64的。但是这个类型,是无法直接获取到年月日的,所以弄起来特别麻烦。所以,我们要把这个类型转换成 datetime库中的datetime!在网上找了转换的方式,大都是这样的:1、是直接使用 astype 转换import datetimeimport numpy as npdt ...原创 2019-07-16 13:19:39 · 2463 阅读 · 0 评论 -
Python-Pandas学习之将数据帧(Dataframe)的数据插入到数据中,并且只插入新的数据
在使用数据帧的过程中,我们经常会需要数据库写入操作,特别是大量的基础数据。在有的数据中,我们是需要设置主键或者唯一项的,那么这个时候,如果还是无脑的调用 to_sql,就会经常出现一个错误,说数据库的主键或唯一项冲突。这个时候,我们就需要对新数据做一下处理,需要先把和数据库中的数据重合的数据删除掉,才能插入新数据。思路就是,根据条件,将新数据中可能出现的情况,使用 read_sql 的...原创 2019-07-12 11:31:04 · 1250 阅读 · 0 评论 -
Python-Pandas的Dataframe基本操作语句和 SQL 语句对比
SELECT,WHERE,DISTINCT,LIMITSQL写法:SELECT * FROM table_name --取出table中所有数据SELECT * FROM table_name limit 3 --取出table中的前3行数据SELECT * FROM table_name WHERE column_name = 'abc' --从table中...原创 2019-07-09 17:28:36 · 3100 阅读 · 0 评论 -
Python-基础知识学习之数据库连接、读取、写入、关闭(sqlite3)
import sqlite3 as sq3import pandas as pdconn = sq3.connect("thisadatabase.db") #连接数据库# def select2table(table):# sql = (# f'''# select id, name, age, sex # ...原创 2019-07-01 17:55:15 · 1479 阅读 · 0 评论 -
Python-基础知识学习之字符串匹配(string,format)
我知道的python三种字符串匹配方式:a = 'aaaa'print('hello %s world!' % a)print('hello {} world!'.format(a))print(f'''hello {a} world!''')#打印的结果都是一样的 hello aaaa world! hello aaaa world! hello aaa...原创 2019-07-01 17:48:05 · 379 阅读 · 0 评论 -
Python-基础知识学习之时间、日期(time、datetime)
要使用时间或者日期,需要导入两个模块:time 和 datetime具体操作写在代码中:import timeimport datetime# 有关 time 的说明print(time.time()) #获取当前是时间戳,以 1970.1.1 00:00:00 以秒计算的偏移值print(time.localtime()) #获取当前的时间元组,共九个元素,年、月、日、时、分...原创 2019-07-01 17:45:12 · 361 阅读 · 0 评论 -
Python-Pandas学习之数据帧(Dataframe)
数据帧(Dataframe)是一个矩阵样式的数据表,包含已排序的列集合,每一列可以是不同的值类型(数值、字符串、布尔值等)数据帧既有行索引也有列索引,它被视为一个共享相同索引的Series字典。下面是创建数据帧的方法,以及一些基本操作:import pandas as pddata = { 'platform': ['qq', 'weixin', 'weibo', 'ta...原创 2019-06-27 16:28:32 · 3929 阅读 · 0 评论 -
Python-Pandas学习之序列(Series)
Pandas是Python的一个库,专门用于处理数据的库,里面提供了很强大的数据处理工具,可以使用下面命令安装这个库:$ pip install pandasSeries是一种一维的数组对象,包含了一个值序列和数据标签,也就是索引(index),下面是一种最简单的序列:import pandas as pd #引用pandas模块obj = pd.Series([1, 2...原创 2019-06-27 15:18:02 · 2156 阅读 · 0 评论 -
Python-基础知识学习之文件、操作系统(open)
Python下读取文件很简单:f = open(path)f.read(10) #读取前十个字符f.tell() #告诉你当前的句柄在哪个位置f.seek(2) #将句柄跳到指定位置f.close() #在文件操作完成之后,一定要记得关闭文件f.readlines(5) #按行读取文件内容f.write('string') #写入一个字符串到文件中f.writel...原创 2019-06-27 14:27:28 · 212 阅读 · 0 评论 -
Python-基础知识学习之错误和异常处理
看下面代码:#简单的方式def toFloat(x): try: return float(x) except: return x#带类型的方式def toFloat(x): try: return float(x) except ValueError: #这里可以带多个 except (TypeEr...原创 2019-06-27 13:56:06 · 218 阅读 · 0 评论 -
Python-基础知识学习之生成器(yield、generator、itertools)
生成器是构造新的可遍历对象的一种简洁的方式,普通的函数,在执行一次之后并返回单个结果,而生成器会返回一个多结果序列,在每一个元素产生之后暂停,知道下一个请求。创建生成器只需要把关键词换成yield关键字:def squares(n=10): print('Generating squares from 1 to {0}'.format(n ** 2)) for i in ...原创 2019-06-27 13:43:52 · 369 阅读 · 0 评论 -
Python-基础知识学习之函数、匿名函数(function,lambda)
函数同其他语言一样,是一段可以重复使用的代码片段,不过在Python中,函数的功能和c和c++等传统语言还是有很大的不同,它更加灵活对边,使用起来也方便很多。函数的声明使用关键字def + 函数名(参数1,参数2,关键字参数1),返回使用return,如果不写return,默认会返回一个none,下面是一个函数的定义:def func1(x, y, z=1.5): if z &g...原创 2019-06-27 12:05:36 · 638 阅读 · 0 评论 -
Python-基础知识学习之集合
集合是一种无序且元素唯一的容器,它比较像一个字典,但是没有值,只有键。可以通过两种方式创建,一种是set函数,另一种是大括号语法创建:a = set([2, 2, 2, 1, 3, 3])print(a)#打印 {1, 2, 3}b = {2, 2, 2, 1, 3, 3}print(a)#打印 {1, 2, 3}#集合的操作可以分为:联合、交集、差集、...原创 2019-06-26 18:24:38 · 362 阅读 · 0 评论 -
Python-基础知识学习之字典(dict)
字典是拥有灵活尺寸的键值对集合,键和值都是一个对象,每个键值对用逗号隔开,所有的键值对使用大括号括起来:adict = {} #定义一个空字典bdict = {'a': 'hello world', 'b': [1, 2, 3]}print(bdict)#打印 {'a': 'hello world', 'b': [1, 2, 3]}#插入一个新的键值对bdict['c...原创 2019-06-26 18:06:48 · 244 阅读 · 0 评论 -
Python-基础知识学习之内建序列函数(enumerate、sorted、zip、reversed)
1、enumerate经常用于遍历,可以对列表遍历之后得到一个带索引和值的元组,这样不需要外部再加参数去记录索引了:alist = [3, 2, 4, 6, 8, 9, 1]for tup in enumerate(alist): print(tup)#打印 (0, 3) (1, 2) (2, 4) (3, 6) (4, 8) (5, 9) (6, 1)#另一...原创 2019-06-26 14:34:34 · 350 阅读 · 0 评论 -
Python-基础知识学习之列表(list或者[])
列表:可以用 list 或者 [] 来表示,与元组不同,长度是可以变化的,每一项内容也可以修改。lista = [2,3,5] #定义了一个列表tup = ('foo', 'bar', 'baz')listb = list(tup) #通过元组创建一个列表print(listb)#打印['foo', 'bar', 'baz']#修改列表第二项listb[1] = 'pe...原创 2019-06-26 13:51:35 · 614 阅读 · 0 评论 -
Python-基础知识学习之元组(tuple)
元组(tuple):这是一种长度固定、不可变的对象序列。表示方式:tup = 4,5,6print(tup)#会看到打印(4, 5, 6)元组还可以是包含元组的元组,比如:nested_tup = (4, 5, 6), (7, 8)print(nested_tup)#打印结果((4, 5, 6), (7, 8))在实际使用过程中,经常需要把数组转化成元组或者...原创 2019-06-26 12:03:02 · 801 阅读 · 0 评论 -
Python-WSGI的简单尝试(Mac+Python3.7+VSCode)
环境: Mac + Python3.7 + VSCodeWSGI其实是一个借口,定义了服务器和客户端之间的标准通信格式,这样可以只要关注自己的html代码即可。from wsgiref.simple_server import make_serverdef application(environ, start_response): status = '200 OK' ...原创 2019-09-02 09:56:08 · 752 阅读 · 1 评论