Python数据分析(一)-Pandas「2」

切片操作

# 从第十行到二十行的所有值,间隔为2.
s4=college[10:20:2]
print(s4)

结果:
在这里插入图片描述
在College中,第十行到第二十行的截图展示,可以对比看打印结果。
在这里插入图片描述

# 获取具体某个列的具体信息
seriesapps=college['Apps']
# 对某一列进行切片处理,获取想要的值
seriesapps[1:10:2]

//输出结果
1    2186
3     417
5     587
7    1899
9     582
Name: Apps, dtype: int64

在College中,第一行到第十行,Apps的值信息,可以对比查看输出结果:
在这里插入图片描述
:要想索引值不是数值,可以查看上一篇set_index,将某个具体的值设置为索引。

copy()与drop()

# 建立数据文本,以便多次修改,利用.copy之后不影响原数据
DataFrame=iris_data[:5].copy()
# 去除掉不想显示的行数
print(DataFrame.drop(index=[1,3]))
DataFrame=iris_data[:5].copy()
# 去除掉不想要展示的列,需要借助conlumns.
DataFrame.drop(columns=["花萼宽度","花瓣宽度"])


//输出结果。去掉不想要的行,以及不想要的列

   花萼长度  花萼宽度  花瓣长度  花瓣宽度      类别
2   4.9   3.0   1.4   0.2  setosa
4   4.6   3.1   1.5   0.2  setosa
5   5.0   3.6   1.4   0.2  setosa
花萼长度	花瓣长度	类别
1	5.1	1.4	setosa
2	4.9	1.4	setosa
3	4.7	1.3	setosa
4	4.6	1.5	setosa
5	5.0	1.4	setosa

条件检索

# 将空值信息筛选出来,具体isnull和isna的区别会详加说明
df=iris_data.loc[iris_data["花萼长度"].isnull()]
print(df)
df1=iris_data.loc[iris_data["花萼长度"].isna()]
print(df1)
df2=iris_data.loc[iris_data["类别"].isnull()]
print(df2)
df3=iris_data.loc[iris_data["类别"].isna()]
print(df3)

# 筛选:不为空的前四条信息
df2=iris_data.loc[iris_data["花萼长度"].notnull()]
print(df2[:4])

# # 筛选:具体某一个字段包含具体值的前五条
df3=iris_data.loc[iris_data["花萼长度"].isin([5.0])]
print(df3[:5])


//输出结果(一一对应)
  花萼长度  花萼宽度  花瓣长度  花瓣宽度   类别
1   NaN   3.5   1.4   0.2  NaN
   花萼长度  花萼宽度  花瓣长度  花瓣宽度   类别
1   NaN   3.5   1.4   0.2  NaN
   花萼长度  花萼宽度  花瓣长度  花瓣宽度   类别
1   NaN   3.5   1.4   0.2  NaN
   花萼长度  花萼宽度  花瓣长度  花瓣宽度   类别
1   NaN   3.5   1.4   0.2  NaN


   花萼长度  花萼宽度  花瓣长度  花瓣宽度      类别
2   4.9   3.0   1.4   0.2  setosa
3   4.7   3.2   1.3   0.2  setosa
4   4.6   3.1   1.5   0.2  setosa
5   5.0   3.6   1.4   0.2  setosa


    花萼长度  花萼宽度  花瓣长度  花瓣宽度      类别
5    5.0   3.6   1.4   0.2  setosa
8    5.0   3.4   1.5   0.2  setosa
26   5.0   3.0   1.6   0.2  setosa
27   5.0   3.4   1.6   0.4  setosa
36   5.0   3.2   1.2   0.2  setosa

条件统计

# 打印出类别为某个值的所有字段统计
print(iris_data.loc[iris_data["类别"]=="versicolor"].count())
c1=sum(iris_data["类别"]=="setosa")
c2=sum(iris_data["类别"]=="versicolor")
c3=sum(iris_data["类别"]=="virginica")
# 直接一一输出具体的三个值
print(c1,c2,c3)
# 根据“类别”的值分别进行统计,就是所有的值都会显示出来
iris_data["类别"].value_counts()

//输出结果(一一对应,因为自己手动改动了一个值为happy,所以第三个的统计结果会出现四个值)
花萼长度    50
花萼宽度    50
花瓣长度    50
花瓣宽度    50
类别      50
dtype: int64

49 50 50

versicolor    50
virginica     50
setosa        49
happy          1
Name: 类别, dtype: int64

条件赋值

# 建立数据副本,以便多次修改
DataFrame=iris_data[:5].copy()
# 选择出想要的数据然后对其中某个字段重新赋值
DataFrame.loc[DataFrame["花萼长度"]>4.8,"类别"]="大花萼"
print(DataFrame)

# 建立数据副本,以便多次修改
DataFrame=iris_data[:5].copy()
# 选择出想要的数据然后对其所在的信息全部赋值为固定值,主要目的就是可以去除所谓的脏数据,这样更加容易将有用信息筛选出来
DataFrame.loc[DataFrame["花萼长度"]>4.8]="错误赋值"
DataFrame

//输出结果(一一对应输出)
花萼长度  花萼宽度  花瓣长度  花瓣宽度      类别
1   4.2   3.5   1.4   0.2   happy
2   4.9   3.0   1.4   0.2     大花萼
3   4.7   3.2   1.3   0.2  setosa
4   4.6   3.1   1.5   0.2  setosa
5   5.0   3.6   1.4   0.2     大花萼
花萼长度	花萼宽度	花瓣长度	花瓣宽度	类别
1	4.2	3.5	1.4	0.2	happy
2	错误赋值	错误赋值	错误赋值	错误赋值	错误赋值
3	4.7	3.2	1.3	0.2	setosa
4	4.6	3.1	1.5	0.2	setosa
5	错误赋值	错误赋值	错误赋值	错误赋值	错误赋值

条件统计

# count(非空值数)、unique(唯一值数)、top(频数最高者)、freq(最高频数)
# unique值为四,就是因为有4个不同的值。count为总行数,
iris_data["类别"].describe()

# 统计总数(非空值)
iris_data["类别"].count()

# 某个字段的最大值为多少
print(iris_data["花萼长度"].max())
# 某个字段的的最小值为多少
print(iris_data["花萼长度"].min())
#  某个字段的平均值为多少
print(iris_data["花萼长度"].mean())
#  某个字段的中值为多少
print(iris_data["花萼长度"].median())

# 统计每列的最小值
print(iris_data.min())
# 统计每列的最大值
print(iris_data.max())
# 统计每列的平均值
print(iris_data.mean())
# 统计每列的中值
print(iris_data.median())

//输出结果(一一对应)

count            150
unique             4
top       versicolor
freq              50
Name: 类别, dtype: object

150

7.9
4.2
5.837333333333335
5.8

花萼长度      4.2
花萼宽度        2
花瓣长度        1
花瓣宽度      0.1
类别      happy
dtype: object
花萼长度          7.9
花萼宽度          4.4
花瓣长度          6.9
花瓣宽度          2.5
类别      virginica
dtype: object
花萼长度    5.837333
花萼宽度    3.057333
花瓣长度    3.758000
花瓣宽度    1.199333
dtype: float64
花萼长度    5.80
花萼宽度    3.00
花瓣长度    4.35
花瓣宽度    1.30
dtype: float64
# 列出不同的值,其实describe()函数都能展示
print(iris_data['类别'].unique())
# 先列出不同的值,然后再排序,默认升序排列
np.sort(iris_data["花萼长度"].unique())
# 聚合操作,可以同时运行多个函数
iris_agg=iris_data.agg(['max','min','mean','median'])
iris_agg
# 分组,可以统计出每个值统计数量
iris_groupby=iris_data.groupby(["花萼长度"])["花萼长度"].count()
iris_groupby

//输出结果(一一对应)
['happy' 'setosa' 'versicolor' 'virginica']

array([4.2, 4.3, 4.4, 4.5, 4.6, 4.7, 4.8, 4.9, 5. , 5.1, 5.2, 5.3, 5.4,
       5.5, 5.6, 5.7, 5.8, 5.9, 6. , 6.1, 6.2, 6.3, 6.4, 6.5, 6.6, 6.7,
       6.8, 6.9, 7. , 7.1, 7.2, 7.3, 7.4, 7.6, 7.7, 7.9])

花萼长度	花萼宽度	花瓣长度	花瓣宽度	类别
max	7.900000	4.400000	6.900	2.500000	virginica
min	4.200000	2.000000	1.000	0.100000	happy
mean	5.837333	3.057333	3.758	1.199333	NaN
median	5.800000	3.000000	4.350	1.300000	NaN
# 分组,可以统计出每个值统计数量
iris_groupby=iris_data.groupby(["花萼长度"])["花萼长度"].count()
iris_groupby

# 分组,根据花萼长度进行分组,但根据的并非其数量进行统计了,而是根据类别来统计
iris_review=iris_data.groupby(['花萼长度'])['类别'].agg(['min','max'])
iris_review

# 分组,根据花萼长度进行分组,根据花瓣长度大小值进行统计
iris_review1=iris_data.groupby(['花萼长度'])['花瓣长度'].agg(['min','max'])
iris_review1
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值