python
gulie8
这个作者很懒,什么都没留下…
展开
-
将科学计数法表示的DataFrame数据转换为浮点数
#将科学计数法表示的数据转换为浮点数qddf['业绩(拆分)']=['%.2f' % x for x in qddf['业绩(拆分)'].values]#筛选出指定时间段的数据cjdf.月份=pd.to_datetime(cjdf.月份)cjdf=cjdf[(cjdf.月份>'2021-06-01')]一般有两种方法:1.将df['date']转换为dtype系列datetime64[ns],使用布尔型掩码,然后使用 df.loc[mask].2....原创 2021-08-26 17:01:02 · 4184 阅读 · 0 评论 -
groupby组内排序如取前n名
def sortv(x): return x.sort_values(ascending=False)[:5]tips.groupby(by='sex')['tip'].apply(sortv)原创 2021-08-25 11:51:31 · 512 阅读 · 0 评论 -
pandas数据的map、apply、applymap函数
在数据分析时,常常会对数据进行较复杂的数据运算,这时需要定义函数。定义好的函数可以应用到pandas数据中,其中有三种方法:map函数,将函数套用在Series的每个元素中;apply函数,将函数套用到DataFrame的行与列上;applymap函数,将函数套用到DataFrame的每个元素上。如图3.48所示,需要把price列的“元”字去掉,这时就需要用到map函数,使用方法如图3.49所示。apply函数的使用方法如图3.50所示。注意:lambda为匿名函数,...原创 2021-07-10 10:07:36 · 216 阅读 · 0 评论 -
数组的存取
数组的存储:import numpy as nparr1=np.arange(9).reshape(3,3)np.savetxt(r'C:\Users\lele\Desktop\arr.csv',arr1,fmt='%d',delimiter=',')数组的读取:arr3=np.loadtxt(r'C:\Users\lele\Desktop\arr.csv',dtype=np.int,delimiter=',')arr3Out[64]: array([[0, 1, 2],原创 2021-07-10 09:55:57 · 306 阅读 · 0 评论 -
numpy广播
我们在介绍两个矩阵相乘时,要求前一个矩阵的列数与后一个矩阵的行数相等。但事实上,如果两个矩阵不满足此要求,还可以通过广播(broadcasting)来对它们进行乘法运算。Python的广播机制应用也非常广泛,它最主要的一个优点是,在进行按位运算时可以极大地减少代码量,提升运算速度。简单来说,广播可以这样理解:假设现在有一个m×n的矩阵a,让它加减乘除一个1×n的矩阵b,那么矩阵b会先被复制m次,最终得到一个与a相同大小的m×n的矩阵c,然后再将矩阵a与矩阵c按逐个元素进行加减乘除操作得到最终结果。同样,这种原创 2021-07-02 11:53:19 · 142 阅读 · 0 评论 -
矩阵运算说明
在机器学习中用到矩阵运算的情况非常多。值得庆幸的是,Python的NumPy工具包中恰好也提供了矩阵运算的功能。1.创建矩阵首先,我们来看如何通过前面的二维数组创建矩阵。二维数组和矩阵在外形上非常相似,但不同的是,数组可以有多维,而矩阵则只能是二维的,由行和列构成。相同数据构成的二维数组和矩阵在Python中主要通过array(数组)和matrix(矩阵)这些关键字来加以区分。data=np.array([[1,2,3],[4,6,8]])dataOut[14]: array([[1,原创 2021-06-30 21:44:17 · 139 阅读 · 0 评论 -
集合-数据结构
在Python中,集合是一种特殊的数据结构,集合中的元素不能重复。可以通过列表、字典或字符串等数据结构来创建集合,也可以通过“{}”符号进行创建。在实际应用中,集合主要有两个功能,一是进行集合操作,二是消除重复元素。a={1,2,4}b=set([1,2,4])aOut[8]: {1, 2, 4}bOut[9]: {1, 2, 4}另外,Python支持数学上的集合运算,包括差集、交集、并集等,假设有两个集合A、B:A={1,2,3,4,5,6}B={3,4,5}A-原创 2021-06-30 17:51:18 · 510 阅读 · 0 评论 -
python带excel一起飞2
#批量新建并关闭工作簿import xlwings as xwapp=xw.App(visible=False,add_book=False)for x in range(10): wkb=app.books.add() wkb.save('d:\\Users\\zhanggl21\\Desktop\\新建工作簿\\'+str(x)+'.xlsx') wkb.close()app.quit()...原创 2021-06-23 17:47:54 · 394 阅读 · 0 评论 -
python带excel一起飞1
54646原创 2021-06-22 17:13:37 · 87 阅读 · 0 评论 -
python求均值中位数众数标准差极值
首先需要数据源,这里随便写了一个:nums = [1,2,3,4]求均值和中位数均可以使用numpy库的方法:import numpy as np#均值np.mean(nums)#中位数np.median(nums)求众数方法一:在numpy中没有直接的方法,但是也可以这样实现:import numpy as npcounts = np.bincount(nums)#返回众数np.argmax(counts)其中np.bincount方法返回了一个长度为 nu...原创 2021-06-18 17:09:45 · 819 阅读 · 0 评论 -
python计算峰度和偏度、相关系数
mimport pandas as pdx = [53, 61, 49, 66, 78, 47]s = pd.Series(x)print(s.skew())print(s.kurt())原创 2021-06-18 11:56:51 · 2115 阅读 · 0 评论 -
apply()与applymap()函数
我们在Python基础知识部分讲过一个Python的高级特性map()函数,map()函数是对一个序列中的所有元素执行相同的函数操作。在DataFrame中与map()函数类似的函数有两个,一个是apply()函数,另一个是applymap()函数。函数apply()和applymap()都需要与匿名函数lambda结合使用。apply()函数主要用于对DataFrame中的某一column或row中的元素执行相同的函数操作。...原创 2021-05-28 17:10:41 · 324 阅读 · 0 评论 -
pandas 获取不符合条件/不包含某个字符串的dataframe
作中数据的处理中往往会遇到筛选出不符合条件的或者不包含某个字符的dataframe,我们会如何去做呢?可能你会想到用python写一个函数,然后用panda的apply函数或者map函数来进行处理,不可否认这是一中方法,但是实际上pandas中已经给我们开发了这样的函数,那我们为什么不直接调用呢?首先看一下,怎么筛选出包含某些字符串的数据#这是使用语法,模糊匹配df[ df['通信名称'].str.contains('联通|移动|小灵通|电信')] #这一种方法不是匹配,而是等于后面列表原创 2021-05-26 15:59:01 · 819 阅读 · 0 评论 -
DataFrame里的replace替换
一对一替换:在Python中对某个值进行替换利用的是replace()方法,replace(A,B)表示将A替换成B。有时候要对整个表进行替换,比如对全表中的缺失值进行替换,这个时候replace()方法就相当于fillna()方法了。多对一替换:多对一替换就是把一块区域中的多个值替换成某一个值,已知现在有三个异常年龄(240、260、280),需要把这三个年龄都替换成正常范围年龄的平均值33,该怎么实现呢?在 Python 中实现多对一的替换比较简单,同样也是利用 rep.原创 2021-05-26 15:24:04 · 13462 阅读 · 0 评论 -
异常值的检测
要处理异常值首先要检测,也就是发现异常值,发现异常值的方式主要有以下三种。● 根据业务经验划定不同指标的正常范围,超过该范围的值算作异常值。● 通过绘制箱形图,把大于(小于)箱形图上边缘(下边缘)的点称为异常值。● 如果数据服从正态分布,则可以利用3σ 原则;如果一个数值与平均值之间的偏差超过3倍标准差,那么我们就认为这个值是异常值。下图为正态分布图,我们把大于μ+3σ的值称为异常值:...原创 2021-05-25 15:42:26 · 648 阅读 · 0 评论 -
导入csv文件时encoding和engine的指定
指定编码格式Python用得比较多的两种编码格式是UTF-8和gbk,默认编码格式是UTF-8。我们要根据导入文件本身的编码格式进行设置,通过设置参数encoding来设置导入的编码格式。有的时候两个文件看起来一样,它们的文件名一样,格式也一样,但如果它们的编码格式不一样,也是不一样的文件,比如当你把一个Excel文件另存为时会出现两个选项,虽然都是.csv文件,但是这两种格式代表两种不同的文件,如下图所示:如果是CSV UTF-8(逗号分隔)(*.csv)格式的文件,那么导入时就需要加en.原创 2021-05-24 17:21:25 · 1119 阅读 · 0 评论 -
matplotlib绘图颜色大全
原创 2019-04-09 18:17:53 · 4579 阅读 · 0 评论 -
散乱8
本篇内容主要摘要自《python数据科学手册》《跟老齐学python之轻松入门》在信息增益中,衡量标准是看特征能够为分类系统带来多少信息,带来的信息越多,该特征越重要。对一个特征而言,系统有它和没它时信息量将发生变化,而前后信息量的差值就是这个特征给系统带来的信息量。所谓信息量,就是熵。信息增益最大的问题在于它只能考察特征对整个系统的贡献,而不能具体到某个类别上,这就使得它只适合用...转载 2019-06-09 19:18:09 · 174 阅读 · 0 评论 -
str.format() 格式化数字的多种方法
>>> print("{:.2f}".format(3.1415926));3.14数字 格式 输出 描述 3.1415926 {:.2f} 3.14 保留小数点后两位 3.1415926 {:+.2f} +3.14 带符号保留小数点后两位 -1 {:+.2f} -1.00 带符号保留小数...原创 2019-05-31 13:58:29 · 1910 阅读 · 0 评论 -
Concatenate和Combine
import pandas as pdimport numpy as npfrom pandas import Series, DataFrame# arrange上的Concatenatearr1 = np.arange(9).reshape(3,3)arr1Out[6]:array([[0, 1, 2], [3, 4, 5], [6, 7, 8]]...原创 2019-04-19 15:11:04 · 205 阅读 · 0 评论 -
DataFrame的merge函数
import pandas as pdimport numpy as npfrom pandas import Series, DataFramedf1 = DataFrame({'key':['X','Y','Z'], 'data_set_1':[1,2,3]})df1Out[5]: data_set_1 key0 1 X1 ...原创 2019-04-19 14:35:03 · 1359 阅读 · 0 评论 -
多级index
import numpy as npimport pandas as pdfrom pandas import Series, DataFrame# 多级Seriess1 = Series(np.random.randn(6), index=[['1','1','1','2','2','2'],['a','b','c','a','b','c']])s1Out[6]:1 a ...原创 2019-04-19 11:37:37 · 208 阅读 · 0 评论 -
Plotting timeseries
plotting time series data:import matplotlib.pyplot as pltimport pandas as pddf=df.set_index('date_column')df.plot()plt.show()Adding style to your plots:plt.style.use('fivethirtyeight')df.plo...原创 2019-04-19 07:30:22 · 630 阅读 · 0 评论 -
散乱9
内建函数,就是python中已经定义好的函数。对象有类型,变量无类型。如,作为标签的变量X没有类型之说,它不仅可以贴在整数类型的对象上,还能贴在其它类型的对象上。字符串里有单引号时出错的解决办法:方法一:用双引号包裹单引号;"what's your "Out[18]: "what's your "方法二:使用转义符;'what\'s your'Out[17]: "wh...原创 2019-06-11 10:52:51 · 122 阅读 · 0 评论 -
python连接数据库取数
import pyodbc# 数据库服务器信息driver = 'SQL Server'server = 'SHCWSYWFZ46T' user = 'sa'password = 'sh.0628'database = 'zyroi'#连接数据库conn = pyodbc.connect(driver=driver, server=server, user=user, \...转载 2019-07-22 17:59:31 · 697 阅读 · 0 评论 -
散乱11
Python列表解析配合if else:用习惯列表解析之后会觉得超级酷,所以在尝试使用列表解析,把循环什么的写在一行里面。使用if的时候什么时候必须要有else,什么时候可以没有else一直没搞明白,直到今天!待我缓缓道来:列表解析总共有两种形式:1. [i for i in range(k) if condition]:此时if起条件判断作用,满足条件的,将被返回成为最终生成的列表的一...原创 2019-07-18 17:03:01 · 142 阅读 · 0 评论 -
xlwings库学习总结
写入多行数据:储存列表# 将列表[1,2,3]储存在A1:C1中sht.range('A1').value=[1,2,3]# 将列表[1,2,3]储存在A1:A3中sht.range('A1').options(transpose=True).value=[1,2,3]# 将2x2表格,即二维数组,储存在A1:B2中,如第一行1,2,第二行3,4sht.range('A1')...转载 2019-07-18 10:05:31 · 4762 阅读 · 1 评论 -
运用正则表达式提取DataFrame某列的手机号
import rephone_regex=re.compile(r'1\d{10}')import pandas as pddf=pd.read_excel(r'd:\Users\zhanggl21\Desktop\6月直聊.xlsx')#定义一个空的列表alst=[]#循环并把匹配到的值添加到列表(注册判断空值)for x in df.聊天记录: if phone...原创 2019-07-15 17:48:24 · 1819 阅读 · 0 评论 -
散乱10
归一化数值:方程中数字差值最大的属性对计算结果的影响最大,也就是说,每年获取的飞行常客里程数对于计算结果的影响将远远大于表2-3中其他两个特征— 玩视频游戏的和每周消费冰洪淋公升数— 的影响。而产生这种现象的唯一原因,仅仅是因为飞行常客里程数远大于其他特征值。但海伦认为这三种特征是同等重要的,因此作为三个等权重的特征之一,飞行常客里程数并不应该如此严重地影响到计算结果。在处理这种不同取值范围的...原创 2019-06-28 17:15:48 · 467 阅读 · 0 评论 -
lele's python groupby函数总结
groupby详解:l(Splitting)按照一些规则将数据分为不同的组;l(Applying)对于每组数据分别执行一个函数;l(Combining)将结果组合到一个数据结构中;groupby 是pandas 中非常重要的一个函数, 主要用于数据聚合和分类计算. 其思想是“split-apply-combine”(拆分 - 应用 - 合并).pandas ...转载 2019-07-02 18:13:47 · 692 阅读 · 0 评论 -
【Python】groupby 和 agg 实现string聚合(collect_set)
以下内容转载自:---------------------作者:喜东东cc来源:CSDN原文:https://blog.csdn.net/qq_34105362/article/details/84345044版权声明:本文为博主原创文章,转载请附上博文链接!一、目的:通过Pandas中的groupby和agg结合自定义函数,实现针对string...转载 2019-06-24 13:53:50 · 1723 阅读 · 1 评论 -
将一个一维数组转变为二维的行或列的矩阵
np.newaxis终极解释:功能:np.newaxis是用来给数组a增加维度的格式:a[np.newaxis和:的组合],如a[:,np.newaxis],a[np.newaxis, np.newaxis, :]详解:np.newaxis在[]中第几位,a.shape的第几维就变成1,a的原来的维度依次往后排。例子:若a.shape=(a ,b, c)a[:, np.newax...转载 2019-06-21 15:35:39 · 993 阅读 · 0 评论 -
python assert语句的作用
一般的用法是:assert condition用来让程序测试这个condition,如果condition为false,那么raise一个AssertionError出来。逻辑上等同于:if not condition: raise AssertionError()使用assert断言是学习python一个非常好的习惯,pythonassert 断言句语格式及用...原创 2019-06-19 22:54:38 · 368 阅读 · 0 评论