![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
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 · 259 阅读 · 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 · 302 阅读 · 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 · 141 阅读 · 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 · 585 阅读 · 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 · 106 阅读 · 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 · 456 阅读 · 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 · 1730 阅读 · 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 · 475 阅读 · 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 · 1268 阅读 · 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 · 217 阅读 · 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 · 383 阅读 · 0 评论 -
字典
增加一项:d[key] = value访问d[key]删除某项del d[key]key是否在字典中:key in d# -*- coding:utf-8 -*-from datetime import datetimedef is_loop_year(year): loop_year = False if (year%4==100 and y...原创 2019-08-16 15:04:27 · 140 阅读 · 0 评论 -
Pool
Pool可以提供指定数量的进程,供用户调用,当有新的请求提交到pool中时,如果池还没有满,那么会创建一个新的进程用来执行该请求;但如果池中的进程数已经达到规定最大值,那么该请求就会等待,直到池中有进程结束,才会创建新的进程来执行它。Pool方法进程池方法:apply(func[,args[,kwds]]):阻塞的执行,比如创建一个有3个线程的线程池,当执行时是创建完一个,执行完函数再...原创 2019-09-23 11:47:13 · 256 阅读 · 0 评论 -
Queue
进程彼此之间相互隔离,要实现进程间通信(IPC),multiprocessing模块支持两种形式:队列Queue和管道Pipe,这两种方式都是使用消息传递的。创建队列的类(底层就是以管道和锁定的方式实现):Queue([maxsize]):创建共享的进程队列,Queue是多进程安全的队列,可以使用Queue实现多进程之间的数据传递参数介绍:maxsize是队列中允许最大项数,省略则无大...原创 2019-09-23 18:10:16 · 173 阅读 · 0 评论 -
面向对象
类由 类的名称、类的属性、类的方法构成类的定义class 类名: def 方法名(self[,参数列表])定义的方法默认要传入一个self参数,表示自己,self参数必须是第一个参数创建对象:对象名 = 类名()类名的命名规则则安装“大驼峰”属性:实例属性:所属于具体的实例对象,不同实例对象直接按的实例属性互不影响类属性所属于类对象,多个实例对象之间共享...原创 2019-09-24 15:29:24 · 81 阅读 · 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 · 138 阅读 · 0 评论 -
Numpy的+=操作、Numpy中的随机数
原地操作与非原地操作+=:原地操作+:非原地操作对于Numpy array切片的修改,是原地操作,会影响原有array对于Python List切边的修改,是非原地操作,不会影响原有Listrandom.rand()根据给定维度生成[0,1)之间的数据random.randn()根据给定维度(不给维度时为单个数),产生符合标准正态分布的随机数random.nor...原创 2019-09-27 20:08:23 · 404 阅读 · 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 · 233 阅读 · 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 · 131 阅读 · 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 · 1919 阅读 · 0 评论 -
Python中的多线程和多进程
Python中存在多线程,但是很遗憾,python仅仅只支持一个线程的运行。主要原因是,thread不支持守护线程。当主线程退出时,所有的子线程不管它们是否还在工作,都会被强行退出。有时我们并不希望发生这种行为,这时就引入了守护线程的概念。threading模块支持守护线程。用multiprocessing替代Thread库multiprocessing库的出现很大程度上是为了弥补th...原创 2019-09-23 10:43:23 · 121 阅读 · 0 评论 -
进程与线程的区别
1.线程是程序执行的最小单位,而进程是操作系统分配资源的最小单位;2.一个进程由一个或多个线程组成,线程是一个进程中代码的不同执行路线。3.进程之间相互独立,但同一进程下的各个线程之间共享程序的内存空间(包括代码段、数据集、堆等)及一些进程级的资源(如打开文件和信号),某进程内的线程在其它进程不可见;4.调度和切换:线程上下文切换比进程上下文切换要快得多。总之,线程和进程都是一种抽...原创 2019-09-23 07:50:24 · 103 阅读 · 0 评论 -
文件操作补充和os模块
CSV文件读取import csvcsv.reader()将每行记录作为列表返回使用with语句操作文件对象使用with语句,不管在处理文件过程中是否发生异常,都能保证with语句执行完毕后关闭文件。不需要close()语句。os模块:os模块提供了与系统、目录操作相关的功能,不受平台的限制。os.remove() 删除文件os.makedirs() 创建多层目录...原创 2019-08-26 17:37:34 · 99 阅读 · 0 评论 -
JSON格式
JSON是一种轻量级数据交换格式可以对复杂数据进行表达和存储,易于阅读和理解规则:1.数值保存再键值对中2.键值对之间由逗号分隔3.花括号用于保存键值对数据组成的对象4.方括号用于保存键值对数据组成的数组采用对象、数组方式组织起来的键值对可以表示任何结构的数据JSON格式是互联网上主要使用的复杂数据格式之一JSON库JSON库是处理JSON格式的Python...原创 2019-08-26 15:03:20 · 917 阅读 · 0 评论 -
直方图
直方图是一种对数据分布情况的图形表示首先要对数据进行分组,然后统计每个分组内数据的数量作用: 显示各分组频率或数量分布的情况 易于显示各组之间频率或数量的差别matplotlib绘制直方图plt.hist(data,bins)data:数据列表bins:分组边界import matplotlib.pyplot as pltimport rando...原创 2019-08-22 15:03:25 · 162 阅读 · 0 评论 -
turtle库
形状绘制函数turtle.forward(distince)画笔向前移动distance距离turtle.backward(distance)画笔向后移动distance距离turtle.right(degree)绘制方向向后旋转degree度turtle.exitonclick()点击关闭图形窗口import turtledef paint(): ...原创 2019-08-13 10:28:43 · 178 阅读 · 0 评论 -
python基本语法之汇率转化
#汇率的转化rmb_str_value = input('请输入你要转化的人民币金额')rmb_int_value = eval(rmb_str_value)us_vs_rmb = 6.77usd_value = rmb_int_value / us_vs_rmbprint('美元的金额',usd_value)...原创 2019-08-12 14:28:00 · 639 阅读 · 0 评论 -
集合Set
集合操作 s-t或s.difference(t) 返回在集合s中但不在t中的元素s&t或s.intersection() 返回同时在集合s和t中的元素s|t或者s.union(t) 返回集合s和t中的所有元素s^t或s.symmetric_difference(t) 返回集合s和t中的元素,但不包括同时在其中的元素...原创 2019-08-15 17:17:46 · 168 阅读 · 0 评论 -
datetime库
处理时间的标准函数库datetimedatetime.now()获取当前日期和时间字符串->datetimedatetime.strptime(),解析时间字符串datetime->字符串datetime.strftime格式化datetime为字符串表示isocalendar()返回年,周数,及周几import datetimeprint(dateti...原创 2019-08-15 10:27:31 · 144 阅读 · 0 评论 -
面向对象
类的定义class ClassName__init__(self)构造函数:初始化对象的各属性self代表类的实例面向对象的特点封装:将数据及相关操作打包在一起支持代码复用继承:子类借用父类的行为避免重复操作,提升代码复用程度定义class ClassName(SuperClassName)多态在不同情况下用一个函数名启用不同方法灵活性...原创 2019-08-19 16:30:24 · 79 阅读 · 0 评论 -
网络爬虫、request模块
自动抓取互联网信息的程序;利用互联网数据进行分析、开发产品步骤:1.通过网络链接获取网页内容2.对获得的网页内容进行处理requests模块是一个简洁且简单的处理HTTP请求的工具支持非常丰富的链接访问功能,包括URL获取,HTTP会话,Cookie记录等requests网页请求:get() 对应HTTP的GET方式post() 对应HTTP的POST方式,用...原创 2019-08-28 11:21:51 · 204 阅读 · 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 · 243 阅读 · 0 评论 -
Python多进程多线程
大部分操作系统(如Windows、Linux)的任务调度是采用时间片轮转的抢占式调度方式,也就是说一个任务执行一小段时间后强制暂停去执行下一个任务,每个任务轮流执行。任务执行的一小段时间叫做时间片,任务正在执行时的状态叫运行状态,任务执行一段时间后强制暂停去执行下一个任务,被暂停的任务就处于就绪状态 等待下一个属于它的时间片的到来。这样每个任务都能得到执行,由于CPU的执行效率非常高,时间片非常...原创 2019-09-20 11:18:42 · 95 阅读 · 0 评论 -
time模块
常用的一种获取当前时间以及时间格式化的模块,模块名称timetime模块在Python原生安装中就存在所以不需要进行任何安装操作。直接使用即可。导入模式:import timetime模块-常用方法time.altzone 返回格林威治西部的夏令时地区的偏移秒数。time.asctime接受时间元组并返回24个字符的字符串time.localtime([secs])...原创 2019-09-18 16:45:54 · 132 阅读 · 0 评论 -
文件夹的操作
python编程时,经常和文件、目录打交道,这时就离不开了os模块。os模块包含普遍的操作系统功能,与具体的平台关系。os.getcwd() 得到当前工作的目录。os.listdir() 方法用于返回指定的文件夹包含的文件或文件夹的名字的列表os.remove()删除指定文件os.rmdir()删除指定目录os.mkdir()创建目录注意:这样只能建立一层,要想递归建立可...原创 2019-09-12 16:45:45 · 167 阅读 · 1 评论 -
内置类属性
Python内置类属性:__dict__:类的属性(包括一个字典,由类的属性名:值组成)实例化类名.__dict____doc__:类的文档字符串(类名.)实例化类名.__doc____name__:类名,实现方式 类名.__name____bases__:类的所有父类构成元素(包含了一个由所有父类组成的元组)__name__:如果是放在Modules模块中,就表示是模块的名字...原创 2019-09-11 09:57:48 · 279 阅读 · 0 评论 -
python中的yield
yield的作用就是把一个函数变成一个generator,带有yield的函数不再是一个不同函数,Python解释器会将其视为一个生成器,如调用Xun函数,不会执行该函数,而是返回一个iterable迭代对象!区别:与return类似,都可以返回值,但不一样的地方,yield可以返回多次值,而return只能返回一次。yield的作用是把一个函数变成一个generator使用生成器可以...原创 2019-09-05 10:49:24 · 131 阅读 · 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 · 290 阅读 · 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 · 424 阅读 · 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 · 185 阅读 · 0 评论