首页 > 其他分享 >Pandas库(二)

Pandas库(二)

时间:2023-02-10 17:58:40浏览次数:31  
标签:df 评分 投票 table ## 人数 Pandas

Pandas库(二)

首先导入pandas和numpy库:

import pandas as pd
import numpy as np

然后读入接下来要使用的数据文件,'豆瓣电影数据.xlsx'。

df = pd.read_excel('豆瓣电影数据.xlsx')

查看数据的前五行:

df.head()
## 输出结果

1. 数据格式转换

  • 查看数据格式 dtype

    # 查看某一列的数据类型
    df['投票人数'].dtype
    ## 输出结果
    dtype('float64')
    
  • 转换数据格式 astype

    df['投票人数'] = df['投票人数'].astype(int)   #将投票人数这一列的数据类型转换为整型
    

    在进行数据格式转换时如果报错可能存在异常值

2. 排序

​ 默认是按index排序的

  • 指定按某一列的值排序:sort_values

    df.sort_values(by = '投票人数').head()  #按投票人数排序,并只查看前5行,默认是升序
    ## 输出结果
    

降序时,使用参数 ascending = False,即df.sort_values(by = '投票人数',ascending = False)

  • 按照多个值排序:sort_values

    df.sort_values(by = ['评分','投票人数'],ascending = False).head() #先按照评分降序,再按照投票人数降序,并只查看前5行
    ## 输出结果
    

3. 基本统计分析

  • 描述性统计 describe

    df.describe()  #对数据df做描述性统计分析
    ## 输出结果
    
  • 在做分析时可能会发现一些异常值,可以依次修改或删除,例如:

    df.drop(df[df['时长'] > 1000].index,inplace = True)  #将时长超过1000的行删除
    
  • 最值

    df['投票人数'].max()    #求投票人数的最大值,输出结果为692795
    df['投票人数'].min()    #求投票人数的最小值,输出结果为-118
    
  • 均值和中位数

    df['评分'].mean()    #求评分的均值,输出结果为6.935560662001942
    df['评分'].median()  #求评分的中位数,输出结果为7.1
    
  • 方差和标准差

    df['评分'].var()    #求评分的方差,输出结果为1.6124934753477749
    df['评分'].std()    #求评分的标准差,输出结果为1.2698399408381258
    
  • 求和

    df['投票人数'].sum()   #求投票人数的和,输出结果为239625925
    
  • 相关系数,协方差

    df[['投票人数','评分']].corr()   #求投票人数和评分的相关系数
    ## 输出结果
    	      投票人数	      评分
    投票人数	1.000000	0.122948
    评分	0.122948	1.000000
    
    df[['投票人数','评分']].cov()   #求投票人数和评分的协方差
    ## 输出结果
    	            投票人数	   评分
    投票人数	6.836005e+08	4081.979888
    评分	4.081980e+03	1.612493
    
  • 计数

    len(df)   #查看df的长度,即共有多少行
    df['产地'].unique()   #查看产地中有哪些唯一值,返回数组
    ## 输出结果
    array(['美国', '意大利', '中国大陆', '日本', '法国', '英国', '韩国', '中国香港', '阿根廷', '德国',
           '印度', '其他', '加拿大', '波兰', '泰国', '澳大利亚', '西班牙', '俄罗斯', '中国台湾', '荷兰',
           '丹麦', '比利时', 'USA', '苏联', '墨西哥', '巴西', '瑞典', '西德'], dtype=object)
    
    df['产地'].replace('USA','美国',inplace = True)  #使用“美国”替换“USA”
    df['产地'].replace(['西德','苏联'],['德国','俄罗斯'],inplace = True)   #分别使用“德国”替换“西德”,用“俄罗斯”替换“苏联”
    
    df['年代'].value_counts().head()   #统计每个年代有几行数据,即每年产出多少部电影,默认升序排序,这里只查看前5行
    ## 输出结果
    2012    2042
    2013    2001
    2008    1962
    2014    1887
    2010    1886
    Name: 年代, dtype: int64
    

4. 数据透视

pandas提供了一个类似excel中数据透视表的功能,名为pivot_table

  • 基本形式

    pd.pivot_table(df,index = ['年代'])  #对数据df进行数据透视,以年代为索引,根据年代分类汇总,默认是统计每年各个变量的均值
    ## 输出结果
    

要想中间不用省略号省略,而是全部显示出来,可以通过pd.set_option('display.max_rows',500)设置显示的最大行数。

  • 可以设置多个索引

    pd.pivot_table(df,index = ['年代','产地'])
    ## 输出结果
    
  • 可以指定需要统计汇总的数据

    pd.pivot_table(df,index = ['年代','产地'],values = ['评分'])  #只对评分汇总
    ## 输出结果
    
  • 可以指定函数,统计不同的统计值

    pd.pivot_table(df,index = ['年代','产地'],values = ['投票人数'],aggfunc = np.sum)   #统计每个国家每年的总投票人数
    ## 输出结果
    
pd.pivot_table(df,index = ['产地'],values = ['投票人数','评分'],aggfunc = [np.sum,np.mean])  #统计每个国家的投票人数和电影评分的总和以及均值
## 输出结果
  • 非数字(NaN)可以通过fill_value将其设置为0

    pd.pivot_table(df,index = ['产地'],aggfunc = [np.sum,np.mean],fill_value = 0)
    
  • 加入margins = True ,可以再下方显示一些总和数据

    pd.pivot_table(df,index = ['产地'],aggfunc = [np.sum,np.mean],fill_value = 0,margins = True)
    ## 输出结果
    

image

  • 对不同值执行不同函数

    pd.pivot_table(df,index = ['产地'],values = ['投票人数','评分'],aggfunc = {'投票人数':np.sum,'评分':np.mean},fill_value = 0) #对投票人数求和,对评分求均值
    ## 输出结果,只展示一部分
    
  • 透视表过滤

    table = pd.pivot_table(df,index = ['年代'],values = ['投票人数','评分'],aggfunc = {'投票人数':np.sum,'评分':np.mean},fill_value = 0)  #将得到的数据透视表赋值给table,table也是一个dataframe,可以对table执行各种操作,例如对评分排序
    table.sort_values(by = '评分',ascending = False)
    ## 输出结果,只展示一部分
    

标签:df,评分,投票,table,##,人数,Pandas
From: https://www.cnblogs.com/DYDNyang/p/17109888.html

相关文章

  • pandas数据统计(方差/标准差/峰度/偏度/差值百分比/相关系数/排名(rank)等)
    数据统计#1.中位数median#median()参数解释median(self,axis:Axis|None|lib.NoDefault=lib.no_default,#轴方向skipna:bool_t=......
  • 【Pandas】- pandas入门
    文章目录​​1pandas的数据结构介绍​​​​1.1Series​​​​1.2DataFrame​​​​2基本功能​​​​2.1重要索引​​​​2.2丢弃指定轴上的项​​​​2.3索引、选取......
  • 这20个Pandas函数可以完成80%的数据分析工作 转载
    转载:https://mp.weixin.qq.com/s/o-nRUFoxrLgrguDydDnGgQ1、pd.read_csv()read_csv用于读取CSV(逗号分隔值)文件并将其转换为pandasDataFrame。 importpandasaspd......
  • python-pandas使用
     importpandasaspd"""pandas学习"""true=Truefalse=Falsenone=Nonenull=Nonedatas=[{"customerCategoryCode":"1......
  • pandas合并数据、交叉透视表
    1.数据合并对数据合并,可以使用concat、merge、join等方法。1.concat方法一般concat用于上下数据堆叠合并。concat有用的三个参数:objs:数据axis:{0/‘index’......
  • pandas 用户数据分析2
    user_analysis  第一部分:数据类型处理¶数据加载¶字段含义:user_id:用户IDorder_dt:购买日期order_product:购买产品的数量order_am......
  • Pandas库(一)
    Pandas库(一)Python中常用的数据分析库,开源,基于numpy库开发的一种工具导入库,并使用别名pd,同时导入numpy库,使用别名npimportpandasaspdimportnumpyasnp1.P......
  • pandas 用户数据分析
    importpandasaspdimportnumpyasnpfrommatplotlibimportpyplotasplt"""第一部分:数据类型处理数据加载字段含义:user_id:用户IDo......
  • pandas中的 Series的讲解
    #coding=utf-8importpandasaspdimportnumpyasnpfrompandasimportSeries'''Series的方法与属性属性:values获取某一列的数据值获取的......
  • Pandas 人口密度案例分析
    fromturtleimportleftimportpandasaspd"""需求:1.导入文件,查看原始数据2.将人口数据和各州简称数据进行合并3.将合并的数据中重复的abbreviation列进行删除......