本文目录一览:
- 1、用python从561473957这一组数据中找出最大值和最小值,并从大到小排列的编程
- 2、用python对10个数进行排序
- 3、python数据分析使用的数据
- 4、python数据分析模块:numpy、pandas全解
- 5、python数据同时排序
- 6、python3爬虫爬取中国大学排名数据并写入mysql数据库并添加省分及添加
用python从561473957这一组数据中找出最大值和最小值,并从大到小排列的编程
li = [56, 14, 73, 95, 7]
print('最大值为:{},最小值为:{}'.format(max(li), min(li)))
print(sorted(li, reverse=True))
用python对10个数进行排序
sort_values(by, axis=0, ascending=True, inplace=False, kind='quicksort', na_position='last')
by: 可以填入字符串或者字符串组成的列表。也就是说,如果axis=0,那么by="列名";如果axis=1,那么by="行名"。
axis: {0 or ‘index’, 1 or ‘columns’}, default 0,意思就是如果axis=0,就按照索引排序,即纵向排序;如果axis=1,则按列排序,即横向排序。默认是axis=0。
ascending: 输入布尔型,True是升序,False是降序,也可以可以是[True,False],即第一个字段升序,第二个字段降序 。
inplace: 输入布尔型,是否用排序后的数据框替换现有的数据框(这个在之前的文章写过很多次了~)
kind: 排序的方法,{‘quicksort’, ‘mergesort’, ‘heapsort’},默认是使用‘quicksort’。这个参数用的比较少,大家可以试一试。
na_position : {‘first’, ‘last’},缺失值的排序,也就说决定将缺失值放在数据的最前面还是最后面。first是排在前面,last是排在后面,默认是用last。
创建数据表:
scores= pd.DataFrame([[87,56,85],[46,87,97],[34,65,86]],
columns=['jack', 'rose', 'mike'])
scores
‘rose’这一列进行降序排序:
df_sc=scores.sort_values(by='rose',ascending=False)
df_sc
‘mike’这一列进行升序排序:
df_sc=scores.sort_values(by='mike',ascending=True)
df_sc
对第0行进行升序排序:
scores.sort_values(by=0,axis=1,ascending=True)
我们再尝试对第1行进行升序,第0行进行降序:
scores.sort_values(by=[1,0],axis=1,ascending=[True,False]
python数据分析使用的数据
1、对数据进行排序df.sort_values()
#读取数据
titanic_survival=pd.read_csv(r"C:Userspythonwandata_minepython_pandas itanic_train.csv")
#用sort_values()函数对指定列排序,默认升序排序,inplace=True表示在原来的df上排序titanic_survival.sort_values(("Age"),inplace=Tru
2、缺失值判断及统计pandas.isnull()、pandas.isnull
空值统计方法一:df.isnull().sum():
#当不指定具体列时,统计整个df的缺失值个数
titanic_survival['Age'].isnull().sum()
通过len()函数统计缺失值
3、缺失值处理
处理缺失值可以分为两类:删除缺失值和缺失值插补。而缺失值插补又分为以下几种:
均值/中位数/众数插补
使用固定值(将缺失值的属性用一个常量代替)
最近邻插补(在记录中找到与缺失值样本最接近的样本的该属性插补)
回归方法(对带有缺失值的变量,根据已有数据和与其有关的其他变量建立拟合模型来预测缺失值)
插值法(利用已知点建立合适的插值函数f(x),未知值由对应点xi求出来近似代替)
下面,我们主要讨论删除缺失值,学习一些pandas缺失值删除的操作。
1)df.dropna(),舍弃含有任意缺失值的行
#等价于titanic_survival.dropna(axis=0) axis=0表示删除行,axis=1表示删除列
dropall=titanic_survival.dropna()
删除含任意空值的行
2)df.dropna()函数删除某个列中含有空值的行
现在这个数据中age、cabin、embarked都有缺失值,如果我们直接使用df.dropna()会删除掉这三列中都有空值的所有行,但是我们希望只删除age列中有空值的数据,那该如何处理呢?
直接使用df.dropna(subset=['column_list'])
drop_age_null=titanic_survival.dropna(subset=["Age"])
删除指定列中含有缺失值的行
pandas自定义函数
python数据分析模块:numpy、pandas全解
一维数组情况:
二维数组情况:
3参数情况:
2参数情况:
1参数情况:
一维情况:
二维情况:
一维情况:
二维情况:
一维情况:
二维情况:第三个参数指定维度
只查看行数、或者列数
逗号隔开两个索引
某些行
某些列
可以看出append()函数在二维数组中添加元素,结果转为了一维数组。
那怎么保持二维数组呢?可以设置axis参数按行或者按列添加
可以看出先把二维数组降成了一维数组,再在索引为1的位置添加元素。
那么怎么保持在二维添加元素呢? 同样设置axis参数
也分按行和按列删除
标记缺失值: isnan()函数
补充缺失值:
同样axis参数可以指定拼接按行还是按列
2. hstack()函数:以水平堆叠的方式拼接数组
3. vstack()函数:以垂直堆叠的方式拼接数组
第二个参数还可以是数组,指定拆分的位置
hsplit()函数:横向拆成几个数组
vsplit()函数:纵向拆成几个数组
数组与数组之间的运算
数组与数值的运算
可以指定整个数组求和,还是按行或者按列
axis=0:每一列的元素求和
axis=1:每一行的元素求和
axis=0:每一列求均值
axis=1:每一行求均值
axis=0:每一列求最大值
axis=1:每一行求最大值
pandas有两个重要的数据结构对象:Series和DataFrame。
Series是创建一个一维数组对象,会自动生成行标签。
会自动生成行列标签
也可以用字典形式生成数据
在用字典生成数据的基础上,同时指定行标签
例如对下表的数据进行读取
4月是第四个表,我们应把sheet_name参数指定为3;因为索引是从0开始的。
可以看出read_excel()函数自动创建了一个DataFrame对象,同时自动把第一行数据当做列标签。
可以看出不给出header参数时,该参数默认为0。
header=1时结果如下:
header=None时结果如下:
index_col=0时,第0列为列标签
index_col=0时
usecols=[2]:指定第二列
指定多列
数据如下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-j1SHxY8y-1637655972909)(C:Users14051AppDataRoamingTypora ypora-user-imagesimage-20211114192949607.png)]
nrows=3时
head()函数中参数为空默认前5行
指定head(3)时如下
numpy模块也是shape
查看特定列的书库类型
特定列数据类型转换
先查看一下所有数据
与单行相比,结果显示的格式不一样了
iloc()挑选:
或者给出区间
挑选数据要么标签,要么索引挑选
或者
或者写成区间
标签挑选
或者索引挑选
先查看一下数据
或者用字典一对一修改
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-a6QKIoie-1637655972912)(C:Users14051AppDataRoamingTypora ypora-user-imagesimage-20211123110431201.png)]
isin()函数查看表中是否有该值
查看特定列是否有该值
可以看出上述代码并没有替换,那怎么替换呢?
末尾插入一列
指定插入到哪列
axis参数可以指定删除行还是删除列
指定标签删除
指定索引删除
方法三
指定行标签删除
指定索引删除
方法三:
先查看所有数据
info()函数查看数据类型,还可以查看是否有缺失值
isnull()函数查看是否有缺失值
在numpy模块中用isnan()函数
删除有缺失值的行
删除整行都为缺失值的行: 需要指定how参数
不同列的缺失值设置不同的填充值
默认保留第一个重复值所在的行,删除其他重复值所在的行
保留第一个重复值所在的行
保留最后一个重复值所在的行
是重复的就删除
降序如下
参数指定first时,表示在数据有重复值时,越先出现的数据排名越靠前
获取产品为单肩包的行数据
获取数量60的行数据
获取产品为单肩包 且 数量60 的行数据
获取产品为单肩包 或 数量60 的行数据
stack()函数转换成树形结构
how参数指定外连接
on参数指定按哪一列合并
concat()函数采用 全连接 的方式,没有的数设置为缺失值
重置行标签
效果与concat()一样
末尾添加行元素
指定列求和
指定列求均值
指定列求最值
获取单列的
corr()函数获取相关系数
获取指定列与其他列的相关系数
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-46g9qgQw-1637655972913)(C:Users14051AppDataRoamingTypora ypora-user-imagesimage-20211123135643804.png)]
groupby()函数返回的是一个DataFrameBy对象,该对象包含分组后的数据,但是不能直观地显示出来。
分组后获取指定列的汇总情况
获取多列的汇总情况
获取多列的情况
ta = pd.read_excel(‘相关性分析.xlsx’)
print(data)
corr()函数获取相关系数
获取指定列与其他列的相关系数
[外链图片转存中…(img-46g9qgQw-1637655972913)]
groupby()函数返回的是一个DataFrameBy对象,该对象包含分组后的数据,但是不能直观地显示出来。
分组后获取指定列的汇总情况
获取多列的汇总情况
获取多列的情况
python数据同时排序
Python列表具有内置的 list.sort()方法,可以在原地修改列表。 还有一个 sorted()内置的函数从迭代构建一个新的排序列表。在本文中,我们将探讨使用Python排序数据的各种技术。
请注意,sort()原始数据被破坏,sorted()没有对原始数据进行操作,而是新建了一个新数据。
一、基本的排序
最基本的排序很简单。只要使用sorted()函数即可返回一个 新的排序的列表
sorted([5, 2, 3, 1, 4])
[1, 2, 3, 4, 5]
咱们也可以使用 list.sort()方法。该方法是对列表list进行的原地操作(原数据被修改,已经不是原来的本来面目)。一般情况下,不如使用 sorted()方便,但是如果你不需要原列表list,使用 sort()会更具效率。
a = [5, 2, 3, 1, 4]
a.sort()
a #a发生改变
[1, 2, 3, 4, 5]
另一个不同点, list.sort()方法只能应用于列表对象数据。而 sorted()却可以对任何可迭代对象进行排序。也就是说sorted()更具有普遍使用性。这里大灯建议初学者使用sorted()。
二、Key参数函数
list.sort()和 sorted()都有key参数,可以指定函数来对元素进行排序。
例如,这里我们使用一个字符串(字符串也是可迭代对象)
sorted("This is a test string from Andrew".split(), key=str.lower)
python3爬虫爬取中国大学排名数据并写入mysql数据库并添加省分及添加
网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。