本文目录一览:
- 用python从561473957这一组数据中找出最大值和最小值,并从大到小排列的编程
- 用python对10个数进行排序
- python数据分析使用的数据
- python数据分析模块:numpy、pandas全解
- python数据同时排序
- 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数据分析使用的数据
- 对数据进行排序
df.sort_values()
# 读取数据
titanic_survival = pd.read_csv(r"C:\Users\pythonwan\data_mine\python_pandas\titanic_train.csv")
# 用 sort_values() 函数对指定列排序,默认升序排序,inplace=True 表示在原来的 df 上排序
titanic_survival.sort_values("Age", inplace=True)
- 缺失值判断及统计
pandas.isnull()
# 当不指定具体列时,统计整个 df 的缺失值个数
titanic_survival['Age'].isnull().sum()
通过 len()
函数统计缺失值
3. 缺失值处理
处理缺失值可以分为两类:删除缺失值和缺失值插补。而缺失值插补又分为以下几种:
- 均值/中位数/众数插补
- 使用固定值(将缺失值的属性用一个常量代替)
- 最近邻插补(在记录中找到与缺失值样本最接近的样本的该属性插补)
- 回归方法(对带有缺失值的变量,根据已有数据和与其有关的其他变量建立拟合模型来预测缺失值)
- 插值法(利用已知点建立合适的插值函数 f(x),未知值由对应点 xi 求出来近似代替)
删除缺失值
df.dropna()
,舍弃含有任意缺失值的行
# 等价于 titanic_survival.dropna(axis=0),axis=0 表示删除行,axis=1 表示删除列
dropall = titanic_survival.dropna()
# 删除含任意空值的行
df.dropna()
函数删除某个列中含有空值的行
# 现在这个数据中 age、cabin、embarked 都有缺失值,如果我们直接使用 df.dropna() 会删除掉这三列中都有空值的所有行,但是我们希望只删除 age 列中有空值的数据,那该如何处理呢?
# 直接使用 df.dropna(subset=['column_list'])
drop_age_null = titanic_survival.dropna(subset=["Age"])
# 删除指定列中含有缺失值的行
python数据分析模块:numpy、pandas全解
一维数组情况:
二维数组情况:
3参数情况:
2参数情况:
1参数情况:
一维情况:
二维情况:
一维情况:
二维情况:
一维情况:
二维情况:第三个参数指定维度
只查看行数、或者列数
逗号隔开两个索引
某些行
某些列
可以看出 append()
函数在二维数组中添加元素,结果转为了一维数组。那怎么保持二维数组呢?可以设置 axis
参数按行或者按列添加。
可以看出先把二维数组降成了一维数组,再在索引为1的位置添加元素。那么怎么保持在二维添加元素呢?同样设置 axis
参数。
也分按行和按列删除。
标记缺失值:isnan()
函数
补充缺失值:
同样 axis
参数可以指定拼接按行还是按列。
hstack()
函数:以水平堆叠的方式拼接数组
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]
:指定第二列- 指定多列
- 数据如下:
nrows=3
时head()
函数中参数为空默认前5行- 指定
head(3)
时如下numpy
模块也是shape
查看特定列的书库类型 特定列数据类型转换 先查看一下所有数据 与单行相比,结果显示的格式不一样了
iloc()
挑选:
或者给出区间 挑选数据要么标签,要么索引挑选 或者 或者写成区间
标签挑选
或者索引挑选
先查看一下数据
或者用字典一对一修改
isin()
函数查看表中是否有该值
查看特定列是否有该值
可以看出上述代码并没有替换,那怎么替换呢?
末尾插入一列
指定插入到哪列
axis
参数可以指定删除行还是删除列
指定标签删除
指定索引删除
方法三
指定行标签删除
指定索引删除
方法三:
先查看所有数据
info()
函数查看数据类型,还可以查看是否有缺失值
isnull()
函数查看是否有缺失值
在 numpy
模块中用 isnan()
函数
删除有缺失值的行
删除整行都为缺失值的行:需要指定 how
参数
不同列的缺失值设置不同的填充值
默认保留第一个重复值所在的行,删除其他重复值所在的行
保留第一个重复值所在的行
保留最后一个重复值所在的行
是重复的就删除
降序如下
参数指定 first
时,表示在数据有重复值时,越先出现的数据排名越靠前
获取产品为单肩包的行数据
获取数量60的行数据
获取产品为单肩包 且 数量60 的行数据
获取产品为单肩包 或 数量60 的行数据
stack()
函数转换成树形结构
how
参数指定外连接
on
参数指定按哪一列合并
concat()
函数采用全连接的方式,没有的数设置为缺失值
重置行标签
效果与 concat()
一样
末尾添加行元素
指定列求和
指定列求均值
指定列求最值
获取单列的
corr()
函数获取相关系数
获取指定列与其他列的相关系数
groupby()
函数返回的是一个 DataFrameBy
对象,该对象包含分组后的数据,但是不能直观地显示出来。
分组后获取指定列的汇总情况
获取多列的汇总情况
获取多列的情况
ta = pd.read_excel('相关性分析.xlsx')
print(data)
corr()
函数获取相关系数
获取指定列与其他列的相关系数
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 社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。