数据格式转换
DataFrame数据类型每一列的数据格式是一致的
1、查看格式
df['院校名称'].dtype
2、格式转化
df['院校名称']=df['院校名称'].astype('str')
在进行格式转化时可能会出现报错,这是因为数据格式不一致,可以根据报错信息找到具体出错的数据,对该报错数据进行处理之后再进行格式转化。
排序
默认排序是根据index进行排序的
1,按照投票人数进行排序
df.sort_values(by='投票人数') :默认从小到大排序
df.sort_values(by='投票人数',ascending=False) :降序排序
2、按照年代进行排序
df.sort_values(by='年代')
df.sort_values(by='年代',ascending=False)
3,多个值进行排序
先按照评分,再按照投票人数进行排序
df.sort_values(by=['评分','投票人数'],ascending=False)
基本统计分析
1、描述性统计
df.describe()
通过描述性统计,可以发现一些异常值,很多异常值往往是需要我们逐步去发现
通过判断去查看有无异常值
df[df['年代']>2019]
df[df['时长']>1000]
2、最值
df['投票人数'].max() 投票人数最大
df['投票人数'].min() 投票人数最小
3、均值和中值
df['投票人数'].mean() 投票人数的平均值
df['投票人数'].median() 投票人数的中值
4、方差和标准差
df['投票人数'].var() 投票人数的方差
df['投票人数'].std() 投票人数的标准差
5、求和
df['投票人数'].sum() 投票人数的总和
6、相关系数、协方差
df[['投票人数','评分']].corr() 相关系数
相关性越小越不相关
df[['投票人数','评分']].cov() 协方差
7、计数
len(df)
8、统计唯一值
df['产地'].unique() 产地的唯一值
len(df['产地'].unique()) 产地唯一值的个数
9、数据替换
单个替换
df['产地'].replace('USA','美国',inplace=True)
replace的参数
第一个:要被替换的值
第二个:要替换的值
inplace:保存
多个同时替换
df['产地'].replace(['西德','苏联'],['德国','俄罗斯'],inplace=True)
['西德','苏联'],['德国','俄罗斯'] 前后位置参数对应替换
10、计算每一年电影的数量
df['年代'].value_counts() 默认数量从大到小排序
df['产地'].value_counts()[:5] 电影产出前5的国家或地区
jupyter显示问题
由于数据量太大,数据显示会出现省略,如果一定要查看,我们可以进行以下设置
pd.set_option('max_columns',100) 最大展示100列
pd.set_option('max_rows',500) 最大展示500行
数据透视
pivot_table
参数:
第一个:DateFrame
第二个:index 指定索引(按照什么索引进行聚合展示)
第三个:values 指定需要汇总的数据
第四个:aggfunc 指定函数
1、基础形式
pd.pivot_table(df,index=['年代']) 以年代为索引,计算所有类别的均值
2、多个索引
pd.pivot_table(df,index=['年代’,‘产地’]) 所有数据的聚合展示
3、指定需要统计汇总的数据
pd.pivot_table(df,index=['年代’,‘产地’],values=['评分'])
只对评分进行展示
4、指定函数,(默认是平均值)
pd.pivot_table(df,index=['年代','产地'],values=['投票人数'],aggfunc=np.sum) 根据年代、产地的投票人数的总和
举例:通过将‘投票人数’列和‘评分’列进行对应分组,对‘产地’实现数据聚合和总结(总数和均值)
pd.pivot_table(df,index=['产地'],values=['投票人数','评分'],aggfunc=[np.sum,np.mean])
5、非数值处理(NaN)
pd.pivot_table(df,index=['产地'],aggfunc=[np.sum,np.mean],fill_value=0) 非数值替换为0
6、margins=True在下方展示总和数据
pd.pivot_table(df,index=['产地'],aggfunc=[np.sum,np.mean],fill_value=0,margins=True)
7、对不同的值进行不同的函数,aggfunc传递一个字典
对各个地区的投票人数求和,对评分求均值
pd.pivot_table(df,index=['地区'],values=['投票人数','评分'],aggfunc={'投票人数':np.sum,'评分':np.mean},fill_value=0)
对各个年份的投票人数求和,对评分求均值
pd.pivot_table(df,index=['年份'],values=['投票人数','评分'],aggfunc={'投票人数':np.sum,'评分':np.mean},fill_value=0)
8、透视表过滤
将结果赋值个变量,对变量进行操作
table=pd.pivot_table(df,index=['年份'],values=['投票人数','评分'],aggfunc={'投票人数':np.sum,'评分':np.mean},fill_value=0)