Python
Haaaley
I‘m Haley. I’m nobody | 学习笔记记录。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【Python_046】网页爬虫(绕过SSH认证)
此篇博客介绍如何用python进行网页爬虫,对一些需要登陆的网页可绕开SSH认证STEP 1 从谷歌商店 下载chromedriverSTEP 2 把文件放在local/bin 文件夹下,由于我用anaconda, 所以我放置的文件夹是anaconda3/binfrom selenium import webdriver#1.创建Chrome浏览器对象,这会在电脑上在打开一个浏览器窗口,此步会直接绕过SSH认证browser = webdriver.Chrome()#2.通过浏览器向.原创 2022-04-26 15:53:31 · 2167 阅读 · 0 评论 -
【Python_045】pandas读取csv | 设置显示所有列 | 只读取某几列前几行
本篇介绍一些pd.read_csv不常用但方便的小技巧设置显示所有列import panda as pddf = pd.read_csv(r"C:\Users\Haley\Desktop\Test.csv")pd.set_option("display.max.columns",None)df只读取某几列import panda as pddf = pd.read_csv(r"C:\Users\Haley\Desktop\Test.csv", usecols=['COL1','COL2.原创 2021-03-22 18:00:59 · 5900 阅读 · 0 评论 -
【Python_044】当Pandas遇上Numpy
题目来源于和鲸社区,之前几篇链接????????pandas数据处理Pandas基础 | 实战# 1.导入并查看pandas与numpy版本import pandas as pdimport numpy as nppd.__version__np.__version__# 2.从NumPy数组创建DataFrame#备注 使用numpy生成20个0-100随机数,以下都是随机数df1 = pd.DataFrame(np.random.randint(1,100,20))# 3.从原创 2021-03-21 21:52:03 · 793 阅读 · 0 评论 -
【Python_043】pandas 金融数据处理实战
数据集与题来源于和鲸社区# 1.使用绝对路径读取本地Excel数据import pandas as pddf = pd.read_excel(r"D:\Haley\Python Project\600000.SH.xls",converters={'A股流通市值(元)':str,'总市值(元)':str,'A股流通股本(股)':str})# 2.查看数据前三行df.head(3)'''日期 代码 简称 前收盘价(元) 开盘价(元) 最高价(元) 最低价(元) 收盘价(元) 成交量(股) 成.原创 2021-03-20 22:29:17 · 839 阅读 · 1 评论 -
【Python_042】Pandas数据处理
来源 和鲸社区 和鲸训练营 第二期第一期笔记见Pandas基础 | 实战import pandas as pdimport numpy as np# 1.读取本地EXCEL数据df = pd.read_excel(r"E:\pandas120.xlsx")# 2.查看df数据前5行df.head()'''createTime education salary0 2020-03-16 11:30:18 本科 20k-35k1 2020-03-16 10:58:48 本科 20k-.原创 2021-03-18 15:35:07 · 361 阅读 · 1 评论 -
【Python_041】Pandas基础 | 实战
pandas 用法千千万,没有实战一个语法都记不住。本文例题来自和鲸训练营, 非广,亲测社区干货很多原创 2021-03-17 23:12:45 · 282 阅读 · 1 评论 -
【Python_040】遍历excel中多个sheet合并数据
之前分享过合并多个excel,详见用PowerQuery合并多个execl文件遍历文件夹中所有excel合并到一个文件中本篇博客介绍 遍历excel中多个sheet合并数据import xlrdimport pandas as pdexcel = r"C:\Users\Haley\Desktop\file_name.xlsx"wb = xlrd.open_workbook(excel)sheets = wb.sheet_names()alldata = pd.DataFrame().原创 2021-03-16 14:07:53 · 634 阅读 · 0 评论 -
【Python_039】anaconda安装配置 | Jupyter Notebook配置
写了这么多篇关于py的博客,本篇介绍一下anaconda的安装,之前踩了不少坑。毕竟对新手来说,py就是从安装到放弃。希望本篇博客可以帮助到大家anaconda安装配置这篇教程很全面,对于这部分我不过多赘述,大家可以直接移步这篇????anaconda的安装与环境配置jupyter 自定义存放路径在cmd输入 jupyter notebook --generate-config根据上述路径找到上述文件,然后用记事本或者notepad ++ 打开找到 #c.NotebookApp.no原创 2021-03-03 20:44:12 · 879 阅读 · 2 评论 -
【Python_038】算法 | 狄克斯特拉算法(Dijkstra)
上篇博客介绍了广度优先搜索。本篇博客介绍狄克斯特拉算法,可以算是BFS进阶版(加上了权重的考量)书籍参考:《算法图解》狄克斯特拉算法找出加权图中前往X的最短路径狄克斯特拉算法只适用于无负权重的有向无环图(无向图意味着两个节点彼此指向对方,其实就是环)有负权重的参考贝尔曼-福德算法(Bellman-Ford algorithm)算法思路:找出“最便宜”的节点,即可在最短时间内到达的节点。对于该节点的邻居,检查是否有前往它们的更短路径,如果有,就更新其开销(找出图中最便宜的节点,并确保.原创 2021-02-18 17:07:37 · 233 阅读 · 0 评论 -
【Python_037】算法 | 广度优先搜索BFS
本篇博客介绍广度优先搜索 (breadth-first search, BFS)广度优先搜索一种图算法可回答用于两类问题:从节点A出发,有前往节点B的路径吗?从节点A出发,前往节点B的路径中哪条路径最短?本质上就是一个队列(先进先出,也称为FIFO – First In First Out)具体实例*上图源于《算法图解》问题: 利用BFS找到最近的名字结尾带M的朋友算法思路:从自己开始,依次检查自己的一度好友若一度好友中没有符合条件的名字,则将好友的好.原创 2021-02-18 11:13:23 · 160 阅读 · 0 评论 -
【Python_036】算法 | 快速排序
上回书说到选择排序,本篇博客介绍快速排序在介绍选择排序之前,先介绍递归的概念。递归递归函数组成部分:基线条件(函数不再调用自己,从而避免形成无限循环)递归条件(函数调用自己)def fact(x): if x == 1: #基线条件 return 1 else: return x*fact(x-1) #递归条件 fact(5)快速排序思路:选择数组第一个数为基准(pivot)依次将数组中的数与基准比较大小,将整个.原创 2021-02-10 16:52:43 · 179 阅读 · 0 评论 -
【Python_035】算法 | 选择排序
本篇博客介绍选择排序思路遍历列表,找到最小 / 最大的元素,放入新列表中。 如此循环,直到旧列表中没有元素为止代码实现def findSmallest(arr:list)->int: smallest = arr[0] smallest_index = 0 for i in range(1, len(arr)): if arr[i]<smallest: smallest = arr[i] .原创 2021-02-09 15:39:17 · 248 阅读 · 0 评论 -
【Python_034】算法 | 二分法
本篇博客介绍用Python实现二分法。 算法小白要从开始研究算法, 从二分法入门再好不过。 书籍参考:《算法图解》概念二分查找是一种算法,其输入是一个有序的元素列表。如果要查找的元素包含在列表中,二分查找返回其位置;否则返回null一般而言,对于包含n个元素的列表,用二分查找最多需要log2n步,而简单查找最多需要n步代码实现def binary_search(bucket:list, item:int)->int: low = 0 high = len(bucket).原创 2021-02-09 10:40:32 · 300 阅读 · 1 评论 -
【Python_033】reset_index 用法 | 清洗mapping表
本篇介绍dataframe索引用法索引基本操作df.columns = [list1] #列索引 aka 字段名df.index = [list2] #行索引 aka 每行记录索引#设置索引df.set_index('col_name')#重命名索引df.rename(columns = {'old_name':'new_name'}) #或者是index = dict1重置索引#重置索引就是把索引重新作为列使用df.reset_index(level=None, dr.原创 2020-12-09 11:27:01 · 452 阅读 · 0 评论 -
【Python_032】数据逆透视,melt()用法
之前介绍了在python中拉数据透视表,pd.pivot_table()函数用法, 本篇博客介绍其逆操作df'''City 2020 2021上海 100 200北京 300 400'''df.melt(id_vars=['City'], var_name ='Year', value_name='Sales')'''City Year Sales0 上海 2020 1001 北京 2020 3002 上海 2021 2003 北京 2021 400'''#id_var.原创 2020-10-27 17:00:11 · 1794 阅读 · 0 评论 -
【Python_031】查看 | 删除 | 填充缺失值
拿到一份脏数据时,缺失值的处理是很重要的一个步骤。本篇博客分享如何用Python查看、删除、填充缺失值查看缺失值: df.info() df['col_name'].isnull() #但数据量多时用这条看不清楚...删除缺失值: df.dropna(thresh=len(df)*0.8, axis=1) #thresh参数含义,某行或某列起码有thresh个非NA数。 #以上表示如某列缺失值超过20%,则删除 df.dropna(how='al.原创 2020-10-24 22:05:23 · 1130 阅读 · 0 评论 -
【Python_030】python中函数的按值传递和按引用传递
学到函数就必定会踩的坑先回顾下概念:按值传递:用变量的值取代函数的参数。 函数中值发生变化,该变量值不变按引用传递(按地址传递):函数中值发生变化,该变量一起变化。可认为函数参数是变量的一个别名Py处理方式如果变量指示一个可变的值(列表 | 字典 | 集合),py按引用调用。如果指示一个不可变的值(字符串 | 整数 | 元祖),则按值调用以下分享一个Tricky Pointsdef double(x:list): print(f"Before:{x}") x .原创 2020-10-23 12:18:47 · 518 阅读 · 1 评论 -
【Python_029】内置数据结构,列表 | 字典 | 集合 | 元组
最近重学python基础,感觉基础知识还是得扎实才能走得更远,整理了一些笔记和大家分享。参考书目:《Head First Python》列表remove只能在知道要删的值时使用, pop取可选索引值作为参数test = [1,2,3,4]test.remove(3)test'''[1,2,4]'''test.pop(1)test'''#pop 不指定参数则默认弹出最后一个。 pop的元素可被解释器回收,也就是可被赋值 如 x = test.pop(),但remove不可.原创 2020-10-22 20:19:32 · 221 阅读 · 1 评论 -
【Python_027】np.linspace用法 --建立等差数列
本篇博客介绍np.linspace用法np.linspace用来建立等差数据用法:np.linspace(start,end, num, endpoint=True)参数含义:start:开始的点end: 结束的点num: 数列中点的个数endpoint:是否包含end,默认为True(包含)即:当endpoint = True时, interval = (end-start) / (num-1)当endpoint = False时,interval = (end-start) / .原创 2020-09-21 14:37:30 · 997 阅读 · 0 评论 -
【Python_026】stack()与unstack()函数用法
本篇博客分享python中stack()与unstack()函数用法一维表和二维表我们最常用的源数据就是一维表,每个index都在行上。例如下图经过了pivot之后的表为二维表,如下图stack()stack()就是把二维表转化成一维表(stack为堆叠的意思,就是把所有的index都堆在行上)unstack()unstack() 则为stack的逆函数,即把一维表转化成二维表的过程实例说明import pandas as pdimport numpy as npdata=p.原创 2020-09-07 19:35:51 · 7524 阅读 · 0 评论 -
【Python_025】解决jupyter notebook 画图不显示 及在深色背景下图表坐标看不清
本篇博客分享一下解决jupyter notebook 画图不显示 及在深色背景下图表坐标看不清画图不显示在import 各种包最后加上一行%matplotlib inline 这行代码用在Jupyter notebook中具体作用是当你调用matplotlib.pyplot的绘图函数plot()进行绘图的时候,或者生成一个figure画布的时候,可以直接在你的python console里面生成图像。图表坐标看不清我把我的jupyter notebook设置为了深色背景,在此再次安利.原创 2020-09-06 11:47:28 · 6335 阅读 · 3 评论 -
【Python_024】python实现 count distinct
之前整理过一篇sql语法在pandas中的实现其中只分开说了count和distinct, 今天终于发现了count distinct的用法count distinct 用nuniqueimport pandas as pda=[['A',1,'aa'],['A',2,'aa'],['B',3,'aa'],['C',4,'bb']]df = pd.DataFrame(a)df.columns = ['Type','Num','type2']dfdf.groupby('Type').原创 2020-08-26 17:17:04 · 4303 阅读 · 1 评论 -
【Python_023】解决pandas读excel中长数字变成科学计数法的问题
pandas 读excel中的长数字时,即使excel中已经设置为文本,读进df后也会自动变成科学计数法。本篇博客介绍解决方法源数据:import pandas as pddata_path = r"C:\Users\Haley\Desktop\order.xlsx"data = pd.read_excel(data_path)data.head()结果:解决方法:import pandas as pddata_path = r"C:\Users\Haley\Desktop\or.原创 2020-07-29 10:11:27 · 9774 阅读 · 0 评论 -
【Python_014】函数传递关键词参数
上一篇介绍了给函数创建可变参数本篇介绍函数传递关键词参数我能想到关键词参数比较常用的场景是在收集用户注册信息时,不是所有用户都会填完每一个信息栏,一些可选的很多人都不会填,这种时候都会需要关键词参数了。用法:在参数前加两个星号** ,表示是关键词参数假设设计一张注册用户信息表单,名字和年龄是必选项,其他信息如所在城市,性别等是可选项那函数可写成如下:def users(name, age, **extra): dic = {'name':name, 'age':age, 'extra.原创 2020-05-17 14:24:07 · 364 阅读 · 1 评论 -
【Python_009】按照excel中某字段拆分文件到多个excel
之前学习了遍历文件夹中所有excel合并到一个文件中本篇学习它的逆向操作:按照excel中某字段拆分文件到多个excel写在前面的Tips:先找出数据中想要按照哪个字段拆分,提取该列并去重,存入列表中套一个循环,把数据子集提取出来输出可在循环中加入print,以便查看进度代码:import pandas as pdimport osinputdata = r"E:\...原创 2020-05-02 08:56:54 · 699 阅读 · 1 评论 -
【Python_020】os.path中利用split和splitext分离路径/文件名/文件扩展名
os.path.splitext(file_path) #分离扩展名os.path.split(file_path) #分离路径和文件名'''data_path = r"C:\Users\Haley\Desktop\sample data.xlsx"os.path.splitext(data_path)Out[6]:('C:\\Users\\Haley\\Desktop\\sample data', '.xlsx')os.path.split(data_path)Out[7]:('C原创 2020-06-21 09:53:02 · 669 阅读 · 0 评论 -
【Python_019】panda中series转成DataFrame
Series:一维数组DataFrame:可以理解为共享同一个的index的多个一维数组在panda中 如果只有一列数据时,数据类型就会自动转换成series。但总觉得series用起来不如DataFrame顺手。本篇介绍一下series转DataFrame:df = s.to_frame()如果觉得想要把index也作为dataframe的一部分:df = s.to_frame().reset_index()...原创 2020-06-13 22:47:43 · 1963 阅读 · 0 评论 -
【Python_018】在python中拉数据透视表,pd.pivot_table()函数用法
本篇介绍panda中pivot_table()函数用法,实现在python拉数据透视表函数介绍:pd.pivot_table(df, values=None, index=None, columns=None, aggfunc=None)参数含义:df:dataframe,需要用来做透视的数据源values: 需要聚合的值index:行维度columns:列维度aggfunc:聚合依据,默认为np.mean,多个汇总的话用字典,如aggfunc={‘sales’:[np.sum,np..原创 2020-06-12 14:06:46 · 2459 阅读 · 0 评论 -
【Python_017】sql语法在pandas中的实现
平时SQL用惯了,用python处理起数据来有些不大顺手,于是整理了一下sql基本常用语法在pandas中的实现。本篇文章均已以下数据为例演示:distinctSQLselect distinct city from tablePythondata['city'].drop_duplicates()Group bySQLselect city, sum(sales) as Q2_salesfrom tablegroup by city Pythondata..原创 2020-06-07 14:22:00 · 479 阅读 · 0 评论 -
【Python_016】把数据写进excel特定单元格
本篇介绍一下如何将数据写进excel特定单元格适用场景: excel中已做好特定模板,只需填一些空就可以(如果是要导源数据之类,建议还是直接to_excel/to_csv 比较方便)粗糙的做了一个模板,如下:源数据如下:Tips:先用pandas把数据读到df里写进excel中利用openpyxl模块读取模板用openpyxl.load_workbook写值用 ws[‘A1’].value = XXX (A1就是你需要写入值的单元格)取值时 需要加上iat[0,0],不然.原创 2020-05-31 09:58:20 · 8542 阅读 · 1 评论 -
【Python_015】解决pandas中to_csv报错unicode encode error
之前分享过一篇遍历文件夹中所有excel合并到一个文件中如果文件中含有emoji等特殊字符,可能会报错信息:‘utf-8’ codec can’t encode characters in position 13-14: surrogates not allowed这个时候就不能用df.to_csv,改用with openwith open(filepath,'w',encoding='utf-8_sig',errors='ignore') as f: df.to_csv(f)如果导出后打原创 2020-05-21 20:51:33 · 2137 阅读 · 0 评论 -
【Python_013】给函数创建可变参数
之前写自定义函数时,参数个数基本都是确定的。今天学到一个方法,可以使得函数参数个数可变, 用起来比较灵活。在参数前加个*即可。*星号表示参数可变(怎么感觉有点像指针??)实例: 计算一串数字的平方和。函数:def calc(*numbers): result = 0 for number in numbers: result += number**2 return result效果:这样传入的参数不用刻意控制在list或者tuple,直接像正常参.原创 2020-05-17 13:09:13 · 252 阅读 · 0 评论 -
【Python_012】解决pandas中to_csv 打开乱码问题
写在前面:之前用下面这条语句打开后excel中都会是乱码df.to_csv(r"C:\Users\Haley\Desktop\result.csv", encoding='utf-8')但把encoding='utf_sig’后就正常df.to_csv(r"C:\Users\Haley\Desktop\result.csv", encoding='utf-8_sig')...原创 2020-05-07 14:37:30 · 373 阅读 · 1 评论 -
【Python_011】pandas中merge用法
pandas中的merge提供了将两张表合并在一起形成一张宽表的功能,效果形同excel中的Vlookup, SQL中的join先导入一下需要合并的数据merge_data = pd.merge(data1,data2, left_on='city', right_on='city_en', how='inner').drop(['city_en'], axis=1)merge_dat...原创 2020-05-03 11:02:36 · 693 阅读 · 0 评论 -
【Python_010】利用python对excel进行去重
写在前面的Tips:使用函数drop_duplicates其中参数subset可以指定按照某字段进行去重。效果如下图参数inpalce默认为False,若为True则直接在原数据上做修改(不推荐,风险较大)参数keep, 若='first’则保留第一次出现的值,若='last’保留最后一次出现的值,若='false’表示一条都不保留下面是代码演示import pandas as...原创 2020-05-02 14:45:59 · 4068 阅读 · 1 评论 -
【Python_008】遍历文件夹中所有excel合并到一个文件中
写在前面的Tips:可处处在代码中插入print语句,可以随时观察到代码进程,面对一堆traceback也大概有迹可循。用pd.ExcelWriter(),最后要记得writer.save(), 不然无法保存到本地运行时要把需要合并的文件关闭,不然会报错PermissionError: [Errno 13] Permission denied如果报错信息:‘utf-8’ c...原创 2020-04-30 16:23:18 · 1643 阅读 · 0 评论 -
【Python_007】Pandas中Series和DataFrame入门介绍
pandas: panel datapandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。(来源百度百科)导入pandasimport numpy as npimport pandas as pd from pandas import Series, DataFrame...原创 2020-04-26 14:57:16 · 269 阅读 · 0 评论 -
【Python_006】Python爬虫抓取豆瓣电影影评
写在前面:我在上一篇博客中【Python_005】利用jieba及wordcloud生成词频及词云图 ,为了测试切词和词云图的效果,从豆瓣爬了电影的100条短评,本篇博客就来尝试一下正儿八经的爬豆瓣高分电影和影评使用到的模块抓取主要使用到两个模块:urlib.request 和 BeautifulSoupurlib.request 用于打开URL的可扩展库官方文档用urlli...原创 2020-04-19 11:08:54 · 722 阅读 · 0 评论 -
【Python_005】利用jieba及wordcloud生成词频及词云图
词云图在数据分析中是比较常见的可视化操作,尤其在做定性分析时,通过词云图展示对某件产品或某个现象讨论最热的词,直观又好看词频生成词云图之前首先要确定各个词的词频,从而知道每个词的热门程度及后续在词云中不同大小的展示(词频即每个词出现的频率)如何计算词频呢?下面就需要介绍一个第三方库:jieba (没错,就是你想的那个结巴。。。jieba库:...原创 2020-04-12 20:43:28 · 7516 阅读 · 0 评论 -
【Python_004】Numpy基本语法
Numpynumpy: Numerical Python高级科学计算和数据分析的基础包常见功能1:ndarray, 一个具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组用于对整组数据进行快速运算的标准数学函数(无需编写循环)用于读写磁盘数据的工具以及用于操作内存映射文件的工具线性代数、随机数生成以及傅里叶变换功能用于集成由C、C++、Fortran等语言编写的代码的工...原创 2020-04-05 15:20:03 · 255 阅读 · 0 评论
分享