python基础知识
格林黄
这个作者很懒,什么都没留下…
展开
-
数据去除重复值
查看重复值dataframe.duplicated( )删除重复值dataframe.drop_duplicates( )trips1.csvstart_id,end_id,start_date0,55,55,'8/29/2013 14:13'1,55,55,'8/29/2013 14:13'2,55,55,'8/29/2013 14:13'3,55,55,'8/29...原创 2019-10-21 10:44:53 · 263 阅读 · 0 评论 -
数据初识
import pandas as pdstations = pd.read_csv('stations.csv',encoding='utf-8')print(stations.head())# id name lat long docks city# 0 1.0 '#SAN#' 37.3 -121 27.0 'San Jose'# ...原创 2019-10-21 10:34:58 · 310 阅读 · 0 评论 -
shape
作用显示Numpy array或者Pandas DataFrame的形状reshape行列数重整import numpy as npimport pandas as pdarr = np.array([[1,2,3,4,5,6,7,8,9,10]])print(arr)# [[ 1 2 3 4 5 6 7 8 9 10]]print(arr.shape)...原创 2019-10-17 16:27:40 · 147 阅读 · 0 评论 -
DataFrame绘图
‘bar' or 'barh' for bar plots#条状图’hist‘ or histogram#直方图’box‘ for boxplot#箱线图‘kde’ or 'density' for density plots#密度图‘area’ for area plots#区域图‘pie’ for pie plots #饼图‘scatter’#散点图import ...原创 2019-10-17 14:55:17 · 590 阅读 · 0 评论 -
DataFrame的合并
merge按指定列进行合并import pandas as pddf1 = pd.read_csv('arr.csv')print(df1)# date s1 s2 s3 s4 s5# 0 05-21 27.93 28.18 29.39 40.52 26.26# 1 05-22 58.08 50.61 51.62...原创 2019-10-16 18:28:18 · 111 阅读 · 0 评论 -
DataFrame的groupby
groupby将数据先按指定维度分组之后,再进行sum、mean等操作..import pandas as pddf = pd.DataFrame({ '学号':[1,2,3,4,5,1,2,3,4,5], '科目':['数学','数学','数学','数学','数学','语文','语文','语文','语文','语文'], '成绩':[90,82,74,52,80,7...原创 2019-10-16 12:14:38 · 464 阅读 · 0 评论 -
DataFrame与Series的运算
原则Series索引值与DataFrame列名相同的项进行相加函数计算add()、sub()、mul()、div()#Series中行索引与DataFrame列标签索引相加得到值import pandas as pds = pd.Series([1,2,3,4])df = pd.DataFrame({ 0:[10,20,30,40], 1:[100,200,...原创 2019-10-15 12:08:28 · 1738 阅读 · 0 评论 -
DataFrame的applymap和apply
DataFrame的applymap将DataFrame的每个元素经过函数运算之后转化成新的元素import pandas as pddf = pd.DataFrame({ 'a':[1,2,3], 'b':[4,5,6]},index=['L1','L2','L3'])print(df)df1 = df.applymap(lambda x:'even' if...原创 2019-10-14 20:09:10 · 482 阅读 · 0 评论 -
DataFrame的向量计算
arr.csvdate,s1,s2,s3,s4,s505-21,27.93 ,28.18 , 29.39 ,40.52 , 26.2605-22,58.08 ,50.61 , 51.62 ,48.55 ,54.0305-23,38.67 ,31.73 ,57.91 ,59.23 ,49.0805-24,45.83 ,31.48 ,45.94 ,71.21 ...原创 2019-10-14 18:07:47 · 1276 阅读 · 0 评论 -
加载CSV到DataFrame和Pandas的轴
从arr.csv文件中读取arr.csvdate,s1,s2,s3,s4,s505-21,27.93 ,28.18 , 29.39 ,40.52 , 26.2605-22,58.08 ,50.61 , 51.62 ,48.55 ,54.0305-23,38.67 ,31.73 ,57.91 ,59.23 ,49.0805-24,45.83 ,31.48 ,4...原创 2019-10-14 15:57:30 · 225 阅读 · 0 评论 -
DataFrame的用法
创建方法#创建方法df_1 = pd.DataFrame({'A':[0,1,2],'B':[3,4,5]})print(df_1)#创建方法 二位数组,列标签 行索引df_2 = pd.DataFrame([[0,1,2],[3,4,5]], columns=['A','B','C'],index=[1,2])print(df_2)...原创 2019-10-12 18:29:45 · 388 阅读 · 0 评论 -
Numpy二维数组和Numpy中的轴
二维数组的表示方法:python原生:列表的列表Numpy:ndarrayPandas:DataFrame二维ndarray与Python List1.ndarry性能更好2.ndarray有mean()、std()、sum()等更多的跟数学计算相关的内置函数,作用于整个数组3.访问语法差别:a[1,2](Numpy ndarray)、a[1][2](Python Li...原创 2019-10-11 15:24:55 · 1939 阅读 · 0 评论 -
Pandas绘图
‘bar’ or 'barh' for bar plots#条状图‘hist’ for histogram #直方图‘box’ for boxplot #箱线图‘kde’ or 'density' for density plots #密度图‘area’ for area plots #区域图‘pie’ for pie plots #饼图import pandas a...原创 2019-09-29 18:09:16 · 140 阅读 · 0 评论 -
Pandas Series
Pandas Series相对于Numpy ndarry1.更多的函数describe()...2相似下标方式访问:s[10]、s[3:10]...for循环:for item in s向量计算:+、-、*、/、...科学计算:mean、sum、max...比Python List快import pandas as pddef dir_judge(var1...原创 2019-09-28 17:13:50 · 234 阅读 · 0 评论 -
Numpy的+=操作、Numpy中的随机数
原地操作与非原地操作+=:原地操作+:非原地操作对于Numpy array切片的修改,是原地操作,会影响原有array对于Python List切边的修改,是非原地操作,不会影响原有Listrandom.rand()根据给定维度生成[0,1)之间的数据random.randn()根据给定维度(不给维度时为单个数),产生符合标准正态分布的随机数random.nor...原创 2019-09-27 20:08:23 · 414 阅读 · 0 评论 -
Numpy和Pandas
NumpyNumerical Python高性能科学计算和数据分析的基础包提供多维数组对象,具有矢量运算能力Pandas基于Numpy,提供高性能的矩阵运算具有更多方便矩阵计算中使用的方法一维数组Pandas:SeriesNumpy:ndarrayndarray与Python List的相似处通过位置访问元素l[0]、l[2:5]、l[:3]、l[2...原创 2019-09-25 18:13:24 · 140 阅读 · 0 评论 -
面向对象
类由 类的名称、类的属性、类的方法构成类的定义class 类名: def 方法名(self[,参数列表])定义的方法默认要传入一个self参数,表示自己,self参数必须是第一个参数创建对象:对象名 = 类名()类名的命名规则则安装“大驼峰”属性:实例属性:所属于具体的实例对象,不同实例对象直接按的实例属性互不影响类属性所属于类对象,多个实例对象之间共享...原创 2019-09-24 15:29:24 · 82 阅读 · 0 评论 -
Queue
进程彼此之间相互隔离,要实现进程间通信(IPC),multiprocessing模块支持两种形式:队列Queue和管道Pipe,这两种方式都是使用消息传递的。创建队列的类(底层就是以管道和锁定的方式实现):Queue([maxsize]):创建共享的进程队列,Queue是多进程安全的队列,可以使用Queue实现多进程之间的数据传递参数介绍:maxsize是队列中允许最大项数,省略则无大...原创 2019-09-23 18:10:16 · 180 阅读 · 0 评论 -
Pool
Pool可以提供指定数量的进程,供用户调用,当有新的请求提交到pool中时,如果池还没有满,那么会创建一个新的进程用来执行该请求;但如果池中的进程数已经达到规定最大值,那么该请求就会等待,直到池中有进程结束,才会创建新的进程来执行它。Pool方法进程池方法:apply(func[,args[,kwds]]):阻塞的执行,比如创建一个有3个线程的线程池,当执行时是创建完一个,执行完函数再...原创 2019-09-23 11:47:13 · 263 阅读 · 0 评论 -
Python中的多线程和多进程
Python中存在多线程,但是很遗憾,python仅仅只支持一个线程的运行。主要原因是,thread不支持守护线程。当主线程退出时,所有的子线程不管它们是否还在工作,都会被强行退出。有时我们并不希望发生这种行为,这时就引入了守护线程的概念。threading模块支持守护线程。用multiprocessing替代Thread库multiprocessing库的出现很大程度上是为了弥补th...原创 2019-09-23 10:43:23 · 124 阅读 · 0 评论 -
进程与线程的区别
1.线程是程序执行的最小单位,而进程是操作系统分配资源的最小单位;2.一个进程由一个或多个线程组成,线程是一个进程中代码的不同执行路线。3.进程之间相互独立,但同一进程下的各个线程之间共享程序的内存空间(包括代码段、数据集、堆等)及一些进程级的资源(如打开文件和信号),某进程内的线程在其它进程不可见;4.调度和切换:线程上下文切换比进程上下文切换要快得多。总之,线程和进程都是一种抽...原创 2019-09-23 07:50:24 · 105 阅读 · 0 评论 -
import matplotlib.pyplot as plt报错“ImportError: DLL load failed: 找不到指定的模块”解决办法
在环境变量中 为 path 添加安装Anaconda的路径Path:D:\ProgramData\Anaconda3;Path:D:\ProgramData\Anaconda3\ScriptsPath:D:\ProgramData\Anaconda3\Library\bin原创 2019-08-22 10:17:25 · 2726 阅读 · 0 评论 -
直方图
直方图是一种对数据分布情况的图形表示首先要对数据进行分组,然后统计每个分组内数据的数量作用: 显示各分组频率或数量分布的情况 易于显示各组之间频率或数量的差别matplotlib绘制直方图plt.hist(data,bins)data:数据列表bins:分组边界import matplotlib.pyplot as pltimport rando...原创 2019-08-22 15:03:25 · 169 阅读 · 0 评论 -
JSON格式
JSON是一种轻量级数据交换格式可以对复杂数据进行表达和存储,易于阅读和理解规则:1.数值保存再键值对中2.键值对之间由逗号分隔3.花括号用于保存键值对数据组成的对象4.方括号用于保存键值对数据组成的数组采用对象、数组方式组织起来的键值对可以表示任何结构的数据JSON格式是互联网上主要使用的复杂数据格式之一JSON库JSON库是处理JSON格式的Python...原创 2019-08-26 15:03:20 · 920 阅读 · 0 评论 -
文件操作补充和os模块
CSV文件读取import csvcsv.reader()将每行记录作为列表返回使用with语句操作文件对象使用with语句,不管在处理文件过程中是否发生异常,都能保证with语句执行完毕后关闭文件。不需要close()语句。os模块:os模块提供了与系统、目录操作相关的功能,不受平台的限制。os.remove() 删除文件os.makedirs() 创建多层目录...原创 2019-08-26 17:37:34 · 100 阅读 · 0 评论 -
网络爬虫、request模块
自动抓取互联网信息的程序;利用互联网数据进行分析、开发产品步骤:1.通过网络链接获取网页内容2.对获得的网页内容进行处理requests模块是一个简洁且简单的处理HTTP请求的工具支持非常丰富的链接访问功能,包括URL获取,HTTP会话,Cookie记录等requests网页请求:get() 对应HTTP的GET方式post() 对应HTTP的POST方式,用...原创 2019-08-28 11:21:51 · 217 阅读 · 1 评论 -
BeatifulSoup解析网页
BeautfulSoup用于解析HTML或XMLpip install beautifulsoup4import bs4步骤1.创建BeautifulSoup对象2查询节点find,找到第一个满足条件的节点find_all,找到所有满足节点的节点创建BeautifulSoup对象bs = BeautifulSoup(url,html_parser,指...原创 2019-08-28 16:07:56 · 246 阅读 · 0 评论 -
爬所有城市的空气质量
#-*- coding:utf-8 -*-import requestsfrom bs4 import BeautifulSoupdef process_city(city_str): url = 'http://pm25.in/' url = url+city_str r = requests.get(url) soup = BeautifulSoup(r...原创 2019-08-30 09:52:48 · 186 阅读 · 0 评论 -
python中匿名函数(imooc)
高阶函数可以接受函数做参数,有时候,我们不需要显示地定义函数,直接传入匿名函数更方便。在python中,对匿名函数提供了有限支持。还是以map()函数为例,计算f(x) = x^2,除了定义一个f(x)的函数外,还可以直接传入匿名函数:map(lambad x:x*x,[1,2,3,4,5,6,7,8,9])[1, 4, 9, 16, 25, 36, 49, 64, 81]lam...原创 2019-08-31 15:46:01 · 432 阅读 · 0 评论 -
可变对象与不可变对象的传递
在python中,string,tuples,和numbers是不可更改的对象,而list,dict,set等则是可以修改的对象。不可变类型:变量赋值a = 5 后再 赋值 a = 10,这里实际是新生成一个int值对象10,再让a指向它,而5被丢弃,不是改变a的值,相当于新生成了a。可变类型:变量赋值la=[1,2,3,4]后再赋值la[2]=5则是将list la的第三个元素值更改,本...原创 2019-09-04 16:03:39 · 300 阅读 · 0 评论 -
python中的yield
yield的作用就是把一个函数变成一个generator,带有yield的函数不再是一个不同函数,Python解释器会将其视为一个生成器,如调用Xun函数,不会执行该函数,而是返回一个iterable迭代对象!区别:与return类似,都可以返回值,但不一样的地方,yield可以返回多次值,而return只能返回一次。yield的作用是把一个函数变成一个generator使用生成器可以...原创 2019-09-05 10:49:24 · 136 阅读 · 0 评论 -
内置类属性
Python内置类属性:__dict__:类的属性(包括一个字典,由类的属性名:值组成)实例化类名.__dict____doc__:类的文档字符串(类名.)实例化类名.__doc____name__:类名,实现方式 类名.__name____bases__:类的所有父类构成元素(包含了一个由所有父类组成的元组)__name__:如果是放在Modules模块中,就表示是模块的名字...原创 2019-09-11 09:57:48 · 288 阅读 · 0 评论 -
类方法与静态方法
1:普通方法:def fun_name(self,...): pass外部用实例调用2:静态方法:通过装饰器@staticmethod 装饰不能访问实例属性参数不能传入self与类相关但是不依赖类与实例的方法3:类方法:@classmethod不能访问实例属性参数必须传入cls必须传入cls参数(即代表了此类对象----区别----self代表实例对...原创 2019-09-12 14:17:32 · 245 阅读 · 0 评论 -
文件夹的操作
python编程时,经常和文件、目录打交道,这时就离不开了os模块。os模块包含普遍的操作系统功能,与具体的平台关系。os.getcwd() 得到当前工作的目录。os.listdir() 方法用于返回指定的文件夹包含的文件或文件夹的名字的列表os.remove()删除指定文件os.rmdir()删除指定目录os.mkdir()创建目录注意:这样只能建立一层,要想递归建立可...原创 2019-09-12 16:45:45 · 174 阅读 · 1 评论 -
异常
Python遇到错误后,会引发异常。如果异常对象并未处理或被捕捉,则程序就会用所谓的回溯(Traceback,一种错误信息)来终止。处理异常异常是指在程序执行过程中发生的一个事件,会影响程序的正常运行,所以一般需要进行捕获异常并处理。异常的捕获使用try/except/finally语句进行捕获操作,并告诉python发生异常时怎么办。怎么简单处理文件异常?我们将导致错误的代码...原创 2019-09-16 11:56:05 · 161 阅读 · 0 评论 -
time模块
常用的一种获取当前时间以及时间格式化的模块,模块名称timetime模块在Python原生安装中就存在所以不需要进行任何安装操作。直接使用即可。导入模式:import timetime模块-常用方法time.altzone 返回格林威治西部的夏令时地区的偏移秒数。time.asctime接受时间元组并返回24个字符的字符串time.localtime([secs])...原创 2019-09-18 16:45:54 · 134 阅读 · 0 评论 -
Python多进程多线程
大部分操作系统(如Windows、Linux)的任务调度是采用时间片轮转的抢占式调度方式,也就是说一个任务执行一小段时间后强制暂停去执行下一个任务,每个任务轮流执行。任务执行的一小段时间叫做时间片,任务正在执行时的状态叫运行状态,任务执行一段时间后强制暂停去执行下一个任务,被暂停的任务就处于就绪状态 等待下一个属于它的时间片的到来。这样每个任务都能得到执行,由于CPU的执行效率非常高,时间片非常...原创 2019-09-20 11:18:42 · 97 阅读 · 0 评论 -
【python】——逆置正整数
Problem Description输入一个三位正整数,将它反向输出。Input3位正整数。Output逆置后的正整数。Sample Input123Sample Output321Hint注意130逆置后是31# -*- coding:utf-8 -*-a=int(input())b=1c=''while a>0: i...原创 2019-05-12 10:17:19 · 1012 阅读 · 0 评论