Python数据分析复习整理(综合应⽤)
数据分析
指使⽤适当的统计分析⽅法对搜集来的⼤量数据进⾏分析,提取有⽤信息并形成结论,从⽽对数据进⾏更加详细的研究和概括总结的过程。数组转置
数据转置是数组重塑的⼀种特殊形式。
哑变量
⼜称虚拟变量,是⽤以反映质的属性的⼀种⼈⼯变量,是量化了的质变量,通常取值0或1。
离散化
将数值进⾏离散化分段统计以提⾼数据的区分度。
1.Numpy
1.创建⼀个数组,数组的shape为(3,2),元素都是0。
import numpy as np
# 1.创建⼀个数组,数组的shape为(3,2),元素都是0。
a = np.zeros([3,2])
a
array([[0., 0.],
[0., 0.],
[0., 0.]])
# 重塑上述数组的维度为2⾏3列。
b = a.reshape(2,3)
b
array([[0., 0., 0.],
[0., 0., 0.]])
# 创建⼀个表⽰国际象棋棋盘的8*8数组,其中,棋盘⽩⾊⽤0填充,⿊⾊⽤1表⽰
arr = np.zeros((8,8),dtype=int)
# 从第⼀⾏开始,⾏间隔为2,从第0列开始,列间隔为2,赋值为1
arr[1::2,0::2]=1
# 从第0⾏开始,⾏间隔为2,从第1列开始,列间隔为2,赋值为1
arr[0::2,1::2]=1
arr
array([[0, 1, 0, 1, 0, 1, 0, 1],
[1, 0, 1, 0, 1, 0, 1, 0],
python数据分析基础教程答案[0, 1, 0, 1, 0, 1, 0, 1],
[1, 0, 1, 0, 1, 0, 1, 0],
[0, 1, 0, 1, 0, 1, 0, 1],
[1, 0, 1, 0, 1, 0, 1, 0],
[0, 1, 0, 1, 0, 1, 0, 1],
[1, 0, 1, 0, 1, 0, 1, 0]])
2.Pandas
import pandas as pd
# 使⽤DataFrame创建数据
df_data = np.array([[1,2,7,3],[5,2,4,0],[8,4,2,5],[8,9,3,2]])
col_data = np.array(['A','B','C','D'])
# 基于数据创建DataFrame对象
df_obj = pd.DataFrame(columns=col_data,data=df_data)
hbase的每个列族均对应了一个什么属性
df_obj
A B C D
01273 15240 28425 38932 # 对B列数据进⾏降序排序
sort_value_data = df_obj.sort_values(by=['B'],ascending=False)
sort_value_data
A B C D
38932 28425 01273 15240 # 将排序后的数据写⼊到csv⽂件,并命名为write_data.csv
sort__csv(r'D:\write_data.csv')
3.数据预处理
现有如下图所⽰两组数据,其中A组中B列数据存在缺失值。
A组
pile up
A B C key
02583
13nan74
252505
32382
43622
B组
A B C
0333
1444
2555
1. 使⽤DataFrame创建这两组数据。
2. 对A组中的缺失值进⾏填充,填充⽅向为时间填充。
3. 合并A组和B组,要求按列的⽅向堆叠数据,并使⽤内连接。
#使⽤DataFrame创建这两组数据。
group_a = pd.DataFrame({'A':[2,3,5,2,3],
'B':[5,np.nan,2,3,6],
'C':[8,7,50,8,2],
'key':[3,4,5,2,2]},dtype=int)
group_b = pd.DataFrame({'A':[3,4,5],
'B':[3,4,5],
'C':[3,4,5]},dtype=int)
print(group_a)
print(group_b)
A B C key
0 2 5 8 3
1 3 NaN 7 4
2 5 2 50 5
3 2 3 8 2
4 3 6 2 2
A B C
0 3 3 3
1 4 4 4
2 5 5 5
# 对A组中的缺失值进⾏填充,填充⽅向为时间填充。
group_a = group_a.fillna(method='ffill')
group_a
A B C key
02583
13574
活字格低代码开发平台252505
32382
43622
# 合并A组和B组,要求按列的⽅向堆叠数据,并使⽤内连接。
group_c = pd.concat([group_a,group_b],axis=1,join='inner')
group_c
A B C key A B C
02583333 13574444 252505555 4.分组聚合
现有如下图所⽰学⽣信息,请根据图中的信息完成以下操作。
年级姓名年龄性别⾝⾼体重0⼤⼀张三18男17565 1⼤⼆李四19⼥16570
年级姓名年龄性别⾝⾼体重2⼤三王五20男17875
3⼤四刘六22男17555
4⼤⼆孔七12⼥16070
5⼤三冯⼋32男18070
6⼤⼀孟九21⼥16752
7⼤三孔⼗22⼥17053
8⼤四张三⼀12男18573
1. 根据年级信息为分组键,对学⽣信息进⾏分组,并输出⼤⼀学⽣信息。
2. 分别计算四个年级中⾝⾼最⾼的同学。
3. 计算⼤⼀学⽣与⼤三学⽣的平均体重。
students_data = pd.DataFrame({'年级':['⼤⼀','⼤⼆','⼤三','⼤四','⼤⼆','⼤三','⼤⼀','⼤三','⼤四'],工字钢吊具
'姓名':['张三','李四','王五','刘六','孔七','冯⼋','孟九','孔⼗','张三⼀'],
'年龄':[18,19,20,22,12,32,21,22,12],
'性别':['男','⼥','男','男','⼥','男','⼥','⼥','男'],
'⾝⾼':[175,165,178,175,160,180,167,170,185],
'体重':[65,70,75,55,70,70,52,53,73]})
students_data
年级姓名年龄性别⾝⾼体重
0⼤⼀张三18男17565
1⼤⼆李四19⼥16570
2⼤三王五20男17875
3⼤四刘六22男17555
4⼤⼆孔七12⼥16070
湖人旧将一项数据成为nba第三人5⼤三冯⼋32男18070
6⼤⼀孟九21⼥16752
7⼤三孔⼗22⼥17053
8⼤四张三⼀12男18573
# 根据年级信息为分组键,对学⽣信息进⾏分组,并输出⼤⼀学⽣信息。
data = upby('年级')
Freshaman =dict([x for x in data])['⼤⼀']
Freshaman
年级姓名年龄性别⾝⾼体重
0⼤⼀张三18男17565
6⼤⼀孟九21⼥16752
# 分别计算四个年级中⾝⾼最⾼的同学。
data1 = students_data[['⾝⾼','年级']].groupby(by='年级').max()
data2 = pd.merge(students_data,data1,on=['⾝⾼','年级'],how='right')
data2
姓名年龄性别⾝⾼体重年级
⼤⼀张三18男17565⼤⼆李四19⼥16570⼤三冯⼋32男18070⼤四张三⼀12男18573 # 计算⼤⼀学⽣与⼤三学⽣的平均体重。
print(Freshaman['体重'].apply('mean'))
58.5
data = upby('年级')
Freshaman =dict([x for x in data])['⼤三']
print(Freshaman['体重'].apply('mean'))
66.0
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论