Pandas 初级学习2

2.1数据格式的转换

查看格式

df[].dtype

转化格式

df[]=df[].astype(int)# 将目标列转换为  int
#将年份转化成整数
df['年代']=df['年代'].astype(int)
#因为 年代中可以存在不能转换的格式 
ValueError: invalid literal for int() with base 10: '2008\u200e'
df[df.年代=='2008\u200e']['年代'].values
df.loc[14934,'年代']=2009

2.2 排序

按照某一列数值进行排序

df.sort_values(by=['投票人数',],ascending=True) #单个关键字升序排列
df.sort_values(by=['投票人数',],ascending=False)#单个关键字降序排列
df.sort_values(by=['评分','投票人数'],ascending=False)[:5]# 多个关键字进行排序 

2.3 基本统计分析

2.3.1 描述性统计

dataframe.describe()

可以根据返回的 描述性统计 发现一些异常值,很过异常值需要逐步发现。

在这里插入图片描述

df[df.年代>2018] #返回符合条件的 数组
df.drop(df[df.年代>2018].index,inplace=True)# df[df.年代>2018].index 返回符合条件的数组的index

!! 需要注意的事drop之后 连带index也会被删除,也就是 现在index已经不是连续的了

# 对index 进行重新设置
df.index=range(len(df))

2.3.2 值

df.投票人数.max() #最大值
df.投票人数.min() #最小值
df.投票人数.mean()#均值
df.投票人数.median()#中位数
df.投票人数.var()#方差
df.投票人数.std()#标准差
df.投票人数.sum()#求和
df[[‘投票人数’,'评分’]].corr() #相关系数
df[[‘投票人数’,'评分’]].cov() #协方差

2.3.3 计数

len(df) # 全部数值的个数
df.产地.unique() #对某列唯一值的统计
也可以 len(df.产地.unique())  # 查看唯一值的个数
计算每一年的电影数量
df.年代.value_counts() #将‘年代’中的数据进行统计 eg:2018 出现 300次 并且出现次数进行降序排列

2.3.4 替换数据

df.产地.replace('USA','美国',inplace=True) #让‘美国’ 替换 "USA" 单个值替换
df.产地.replace(['USA','西德'],["美国","德国"],inplace=True) #多个值替换

数据透视表

1.基础形式

pd.set_option(‘max_columns’,100)#对返回的数展示据进行输出设置
 pd.set_option(‘max_rows’,500)
pd.pivot_table(df,index=['年代']) # 两个参数:df 是一个DataFrame,需要一个索引# 将df中的数据按照年代 去计算一个均值 比如 有六个1888  有六个数据 就计算6个的平均数 聚合计算

2.多个索引也是可以的

pd.pivot_table(df,index=["年代","产地"])

3.按照指定的列名进行统计

pd.pivot_table(df,index=["年代","产地"],values=['评分']) #只要评分

4.指定函数进行统计

pd.pivot_table(df,index=['年代','产地'],values=['投票人数','评分'],aggfunc=[np.sum,np.mean])#指定一个函数进行统计

5.非数值(NaN) 处理,使用fill_value 将其设置为0

pd.pivot_table(df,index=['产地'],aggfunc=[np.sum,np.mean],fill_value=0)

6. 加入marigins= 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,margins= True)
#可以对 投票人数 以及评分 使用字典中对应函数进行计算

透视表的过滤

猜你喜欢

转载自blog.csdn.net/weixin_41785923/article/details/87936648