自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(123)
  • 收藏
  • 关注

原创 padas facorize的实际使用一个小案例

例如有如下数据,需要获取score为前5的数据。score cat18 B18 A17 A16 B16 A15 B14 B13 A12 A10 B9 B这个问题的核心在于score中的数据是允许重复的,直接获取前5名的方法并不可取,下面介绍下如何使用factorize函数来实现。>>> df['rnk'] = df.score.factorize

2021-04-06 11:37:11 332

原创 pandas的factorize方法简介

factorize具体是做什么的,这个不好描述,先让我用个例子做个说明。>>> import pandas as pd>>> labels, uniques = pd.factorize(['b', 'b', 'a', 'c', 'b'])>>> labelsarray([0, 0, 1, 2, 0], dtype=int64)>>> uniquesarray(['b', 'a', 'c'], dtype=object)

2021-04-01 16:11:46 2019

原创 构建df的一种比较快速的方式

经常需要从网上弄数据去做实验,手动输入有时是比较慢的。例如下面这张图片的数据,直接复制数据是无法快速构建的这里利用StringIO提供一种快速构建的方法。>>> from io import StringIO>>> import pandas as pd# 数据复制以后,直接通过StringIO构建>>> data = StringIO('''score cat18 B18 A17 A16

2021-03-31 14:09:34 498

原创 python itertools模块之groupby的使用

itertools模块中的groupby方法比较实用,下面简要介绍一下:如果将“aaaabbbbccccaaaa”按照字母出现的顺序进行分组,你会怎么做?使用groupby函数可以快速实现这个功能,import itertoolsm = itertools.groupby("aaaabbbbccccaaaa")for k, v in m: print(k, len(list(v)))=================== RESTART: C:/Users/Desktop/test.py ===

2021-03-26 10:28:16 3248 1

原创 pandas的一个小问题(二)

接着回答昨天的问题有两个series,如下所示:>>> import pandas as pd>>> import numpy as np>>> df1 = pd.DataFrame({'y1':[1, 2, 3, 4]})>>> df2 = pd.DataFrame({'y2':[3, 1, 2, 6]})希望通过比较y1, y2使得y2中保存的是y1, y2中较小的值。即预期结果是这样的{‘y2’: 1, 1, 2

2021-03-25 10:23:53 100

原创 pandas的一个小问题

问题是这样的,有两个series,如下所示:>>> import pandas as pd>>> import numpy as np>>> df1 = pd.DataFrame({'y1':[1, 2, 3, 4]})>>> df2 = pd.DataFrame({'y2':[3, 1, 2, 6]})希望通过比较y1, y2使得y2中保存的是y1, y2中较小的值。即预期结果是这样的{‘y2’: 1, 1, 2, 4

2021-03-24 10:02:24 117

原创 pandas获取最近7天或者10天的数据

pandas获取最近10天的数据也是一个经常的应用,下面我们通过例子加以说明>>> import pandas as pd>>> import numpy as np# 构建数据,当前时间是2021年3月23日>>> df = pd.DataFrame({'Data_Date':['2021-03-11','2021-03-12','2021-03-13','2021-03-14','2021-03-15'], 'A':[132,343,212,

2021-03-23 10:50:14 3017 1

原创 使用turtle绘制圆

turtle绘制圆的代码很简单,只需要如下几行:from turtle import *color('red', 'yellow')begin_fill()while True: forward(1) left(1) if abs(pos()) < 1: breakend_fill()done()运行结果如下:哈哈,其实还是挺简单的。有兴趣欢迎关注python小工具...

2021-03-16 16:20:59 3615

原创 turtle制作动图,你不得不佩服

turtle是这两天新发现的一个标准模块,挺有意思的。在官网里抄了一段代码,感受一下python的魅力。from turtle import *color('red', 'yellow')begin_fill()while True: forward(200) left(170) if abs(pos()) < 1: breakend_fill()done()哈哈,运行结果如图所示:另外,在推荐一款好用的gif制作软件,可以通过录屏,已有视屏

2021-03-05 11:29:44 1428

原创 python pandas解决csv文件中的部分注释问题

由于通过添加注释,文件通常可以更加清晰明了。csv文件中有注释,这种情况是可能存在的。那么,在pandas读取csv文件的时候,如何规避掉注释。例如,有如上文件,#号后就是我添加的注释。# 正常读取是不合理的,结果仅有一列而非a,b,c三列>>> df = pd.read_csv('D:/1.csv', sep=' ')>>> df #empty\na,b,c\n1,2,3a b c12 中国

2021-03-02 17:12:56 1736

原创 python pandas实现手机号号码中间4位匿名化

因为工作上要将客户的部分资料传给第三方做进一步处理,但是因为涉及到手机号等关键个人信息,所以需要对中间四位数做匿名化的简单处理。>>> import pandas as pd>>> import numpy as np# 这里需要将手机号所在列在读取时指定类型>>> df = pd.read_excel('D:/1.xlsx', dtype={"phone":str})>>> df phone0 1837

2021-03-01 14:27:41 2559

原创 python如何判断两个浮点数大约相等?

浮点数相等一直是个老生常谈的话题。今天我们借助python math模块中的isclose函数说明一下这个问题。isclose(a, b, *, rel_tol=1e-09, abs_tol=0.0) Determine whether two floating point numbers are close in valuepython官方在文档中给出了如上说明,解释一下参数的含义:(1)rel_tol :使用科学计数法表示的a, b两数允许的最大差异。例如当rel_tol=1e-02,即

2021-02-25 18:00:11 5481

原创 python中的数学运算(二)

1、python中有一些类似数学集合的运算,如 或、且、非的关系,对应的运算符有 |,&,-等运算符。这些运算符都是仅限于集合set的操作,也有一定的实用性。# 创建两个集合x, y>>> x = set('spam')>>> y = {'h', 'a', 'm'}>>> x, y({'a', 'p', 'm', 's'}, {'h', 'm', 'a'})# 对集合求交集,获取两个集合共有数据>>> x &am

2021-02-24 15:27:40 232

原创 列表解析

列表解析很常见,但对于以前使用过其他语言的开发者而言,它又完全是新的。列表解析源自集合的概念。它是一种通过对序列中的每一项运行一个表达式来创建一个新列表的方法,每次一个,从左至右,列表解析是编写在方括号中的,并且由使用了同一个变量名的表达式和循环结构组成的。>>> M = [[1, 2, 3],]>>> M = [[1, 2, 3],[4, 5, 6], [7, 8, 9]]# 获取元素中的第二个元素>>> col2 = [row[1] for

2021-02-20 11:44:10 556

原创 python中的随机数

random模块是python中的随机数模块,也是比较常用的模块之一。下面做一下简要的介绍:import random1、默认函数,产生0-1之间的随机数>>> random.random()0.13436424411240122>>> random.random()0.8474337369372327>>> random.random()0.7637746189766142、randint函数,产生指定范围内的随机整数# 注意

2021-02-19 15:08:51 1090

原创 python中一些常见的数学操作

python中有些数学操作还是非常常见的,下面做一些简要的介绍:import mathfrom fractions import Fraction1、获取常见的常数值# 圆周率值>>> math.pi3.141592653589793# 科学常数>>> math.e2.7182818284590452、对数据进行各种截取# 向上取整>>> math.ceil(4.12)5# 向下取整>>> math.f

2021-02-19 10:57:07 200

原创 Fraction实现分数的运算

python中的fraction模块可以实现分数的加减乘除运算。其常用的构造方式主要有以下三种:1、直接指定分子分母,第一个参数为分子,第二个参数为分母>>> from fractions import Fraction>>> a = Fraction(2, 1)2、字符串直接填写小数>>> c = Fraction('1.5')>>> cFraction(3, 2)3、字符串直接填写分子分母形式>>

2021-02-02 13:50:27 871

原创 pandas创建多重索引的几种方式

使用pandas创建多重索引的方式有很多,下面举出常见的几种:1、pd.MultiIndex.from_tuples方法>>> import pandas as pd>>> import numpy as np>>> arrays = [["bar", "bar", "baz", "baz", "foo", "foo", "qux", "qux"],["one", "two", "one", "two", "one", "two", "one",

2021-01-21 14:52:27 1680

原创 使用glob模块实现高效文件遍历

文件遍历在大多数情况下由于需要自己实现递归,相对来说还是一件比较麻烦的事。python标准库 glob模块对文件遍历提供了支持。glob模块需要通配符的支持,主要常用通配符含义如下:这是我的一个目录结构1、非递归,只查找当前文件夹,不含子文件夹(1)查找某个目录下所有的以xml文件结尾的文件>>> import glob>>>> glob.glob(r'G:\myreids\*.xml')['G:\\myreids\\pom.xml'](2)查

2021-01-08 16:37:06 389

原创 使用pandas读取sql

使用pandas读取sql查询后的数据,通常有以下步骤:1、需要安装sqlalchemy包,官方pandas文档给的例子推荐使用这个工具连接from sqlalchemy import create_engineimport pandas as pd2、创建引擎db_connect_string = 'mysql+pymysql://root:123aaa@localhost:3306/cloudDB01?charset=UTF8MB4'# 数据库类型// 用户名:密码@ip地址:端口号/数据

2020-12-28 10:41:48 2504

原创 pandas读取excel遇见空值的处理

使用pandas读取excel时,经常会遇到空值,这时如果读取的是整数列,便会出现如下情况:import pandas as pd>>> df = pd.read_excel(r'D:/myExcel/1.xlsx')>>> df name score0 lc 78.01 la 31.02 lb 79.03 ld 78.04 le 90.05 ll NaNscore列需要的是整数,但是读取出来却

2020-12-15 11:31:49 7852 1

原创 divmod的使用

今天在学习pandas的官方文档时,遇到了divmod这个函数,调用了help(divmod)。pandas返回了一行话如下:divmod(x, y, /) Return the tuple (x//y, x%y).# 即x // y 返回的是x除以y以后的整数部分, # x % y返回的是x 除以y后的余数部分下面看一下,其在pandas中是如何使用的:>>> s = pd.Series(np.arange(10))>>> s0 01

2020-12-10 17:36:37 1819

原创 pandas中的pct_change的用法简介(二)

上一篇文章中,介绍了pct_change在series中的用法。今天介绍一下,该函数在dataFrame中的用法。>>> import pandas as pd>>> import numpy as np>>> df = pd.DataFrame({'FR': [4, 4, 4],'GR': [3, 5, 4],'IT': [4,4,4]},index=['1980-01-01', '1980-02-01', '1980-03-01'])>

2020-12-07 11:32:10 2467

原创 pandas中的pct_change的用法简介

在生活中,我们经常看到环比增长,环比上月增长的字眼,即本期数据比上一期数据的百分比变换率。在pandas中,我们可以通过pct_change方法迅速计算出上述数据。>>> import pandas as pd>>> import numpy as np>>> ser=pd.Series([50, 60, 70])>>> ser0 501 602 70# 如下所示,默认参数period=1# 即计

2020-12-03 14:10:34 6271

原创 python fake库的使用

fake库通常用在造假数据时非常方便,可能大家很多人都用过了吧。一般用法可以参考如下链接:fake库基础方法使用。下面,我来介绍一下,如何自定义自己的fake方法。from faker import Fakerfake = Faker(local='zh_CN')from faker.providers import BaseProvider>>> class MyProvider(BaseProvider): exam=['jingang', 'dahai', 'sanrui

2020-11-23 09:38:33 3142 1

原创 python利用Counter模块快速查找重复数据

在上一篇中,我介绍了collections中的counter模块,并简单介绍了其使用。这一篇中,我将通过一个例子展示其如何在pandas中快速查找某列中的重复数据。>>> import pandas as pd>>> import numpy as np>>> df = pd.read_excel('D:/2.xlsx')>>> df 姓名 电话0 lb 12321 lc 32222

2020-11-06 09:44:49 1125

原创 python中的一些有趣的库(一)

python中有一些很有趣的库,小却有时很有用,今天分享的是一个计数的库,collections模块中的Counter类。首先,该类继承了dict,专门用于做计数。接下来,看一下它的功能:>>> from collections import Counter# 传参构造对象时,可以是list,也可以是String,也可以是dict# 只要是iterable的子类就可以>>> c = Counter('abcdeabcdabcaba')# most_comm

2020-11-05 17:43:58 574 2

原创 pandas style格式化数据

对数据的格式化是pandas经常遇到的,使用style属性也可以进行。python如何对数字和字符格式化可以参考以下文章:python格式化下面对使用style格式化做出相应说明:import pandas as pdimport numpy as npnp.random.seed(24)df = pd.DataFrame({'A': np.linspace(1, 10, 10)})df = pd.concat([df, pd.DataFrame(np.random.randn(10, 4),

2020-11-02 11:07:33 5072 2

原创 使用pypinyin将汉字转换为全拼

最近,项目里给出了一个小需求,根据excel表格里的姓名,获取全拼。例如,张三转成zhangsan。手动添加肯定是不行的,我发音不准,en和eng有时分不清。所以就到python里面找了相关的库,pypinyin确实是可以的。1、安装在cmd窗口里执行python -m pip install pypinyin2、代码from pypinyin import lazy_pinyin, Style# pypinyin有很多方法,lazy_pinyin属于常用的# Style有很多不同的属性,根

2020-10-28 15:51:41 536

原创 python pandas style的设置(二)

紧接上一篇,继续介绍一些设置常用格式的方法mport pandas as pdimport numpy as npdf=pd.read_excel('D:/1.xlsx', sheet_name='Sheet1')1、hide_index()# 隐藏indexdf.style.hide_index()2、hide_columns()df.style.hide_columns(['id'])3、highlight_max(axis=None)# 当设置axis为null时,默认会

2020-10-25 08:26:40 1378

原创 pandas style属性的设置(一)

首先,回答一下上篇文章中的一个问题,为什么最终在目前常用的开发工具中,需要选择jupyter notebook作为学习style属性的开发工具? 在pandas style的官方文档中,有这样一句note,意思大致是这样的:style属性本身会返回object对象,这个对象内部有一个_repr_heml_方法,可以转为html语言,可以调用.render()方法,查看其html语言及css样式。 css样式在程序里是可以被浏览器识别的,而jupyter notebook本身是运行在网页上的开发工...

2020-10-25 07:44:42 4923 2

原创 pandas style的显示

刚开始学习pandas对style的显示,费了一点力气,最后才成功。就按照最简单的开始吧,我对idle这款工具部分设置不是很熟悉,最后用了jupyter才成功。jupyter的使用参考链接是jupyter使用指南,使用过程中有什么问题可以联系我哦,一起探讨。import pandas as pdimport numpy as npdf = pd.read_excel('D:/1.xlsx', sheet_name='Sheet1')print(df) id name score0

2020-10-20 10:53:15 2450 3

原创 python pandas中如何实现excel中的rank函数

rank函数在excel中尝用来实现对数据的排名,在pandas中有同样的函数来实现同样的功能,下面我们具体来学习一下。1、rank函数主要有以下几个参数。(1)method确定数值相等时的排名策略。有以下5种方式,后面通过实例说明前4种方式的使用‘average’, ‘min’, ‘max’, ‘first’, ‘dense’(2)na_option确定对na值参与时的排名策略。有以下三种方式,‘keep’, ‘top’, ‘bottom’(3)ascending确定是否按照升序排名,默认为

2020-08-29 07:31:02 884

原创 python pandas实现excel中的if 函数(一)

excel中,if函数的使用非常普遍。如果通过pandas可以有好几种方法,核心还是通过if语句实现。下面我来阐述一下:>>> df = pd.read_excel(r'D:/myExcel/1.xlsx')>>> df 销售人员 销售额0 张三 -1001 李四 2002 张三 1003 王五 1004 王五 300(1)将销售额大于0时,标记为good,否则标记为bad在这里用到了pandas中的apply函数以及

2020-08-19 08:26:19 4956 2

原创 python pandas实现excel的sumif函数

sumif函数在excel函数中是使用非常普遍的一个函数,那么在pandas中该如何实现呢?如下所示,我们需要根据df2提供的销售人员名单,求出在df1中的销售人员对应的销售额的和:>>> import pandas as pd>>> import numpy as np>>> df1 = pd.read_excel(r'D:/myExcel/1.xlsx', sheet_name='Sheet1')>>> df2 = pd.

2020-08-12 18:31:26 7102 1

原创 python pandas实现excel中的sum函数功能

sum函数是excel中经常用到的函数,那么在pandas中也存在这样的函数,下面详细了解一下这个函数:>>> import pandas as pd>>> import numpy as np>>> df=pd.read_excel(r'D:/myExcel/1.xlsx')>>> df A B C D0 3 1.0 1.1 hello1 3 NaN 2.2 hello2

2020-07-30 17:43:31 7247

原创 python pandas创建category类型的两种方式

category类型在pandas中是和string,int等类型并列的一种数据类型,中文翻译可以理解为分类。即某些数据的分类可以是有限的。例如:人类只有男性和女性,硕士分为研究生和博士等等。下面,我们开始构建pandas创建category类型的两种方法。1、创建series时,直接指定为category类>>> s = pd.Series(["a", "b", "c", "a"], dtype="category")>>> s0 a1 b2

2020-07-24 15:35:10 4027 1

原创 pandas round方法保留两位小数的设置

我们经常需要对有浮点数的列需要保持精度,那么在pandas中该如何实现呢?这里提供一种方法,round方法round常用用法有两种方式:1、传入int,对所有列保持统一精度.>>> import numpy as np>>> import pandas as pd>>> df = pd.DataFrame([(.21, .32), (.01, .6), (.66, .03), (.21, .183)],columns=['dogs', 'ca

2020-07-04 07:30:22 29140

原创 python 浮点数指定位数

1、round函数官方释义:Round a number to a given precision in decimal digits.举例如下:>>> a=1.23444>>> round(a, 3)1.234# 此处如果指定数据需要保留3位小数,但数据本身只有一位小数# 则和原数据相同>>> b=1.2>>> round(b, 3)1.2# 如果未指定精度,则返回结果为整数>>> roun

2020-07-02 18:55:19 6105

原创 python pandas如何实现类似于excel中left或者right函数

关于这个问题,我觉得应该是调用str函数后应用切片最方便了。举例如下>>> import pandas as pd>>> import numpy as np>>> df=pd.read_excel(r'D:/myExcel/1.xlsx')>>> df name score0 bob_B 451 jiken_A 67# 获取name列的前三个字母>>> df[

2020-06-30 18:24:33 4393

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除