zoukankan      html  css  js  c++  java
  • 【Python】pandas基础

    pandas基础

    pandas:主要进行数据清理和数据分析

    1、pandas数据结构

    1.1 Series

    1.1.1 Series可以是一种一维数组型对象

    包含一个值序列,并且包含数据标签,称为索引(index)。

    • 创建Series

      创建Series,不指定索引或指定索引

    obj = pd.Series([1, 3, 5, 7])

    obj = pd.Series([1, 2, 3, 4], index = ['a', 'b', 'c', 'd'])

    • 数据访问

    Series对象有values和index属性,obj .values和obj .index 分别获取值和索引

    obj ['a'] >> 1

    obj ['a', 'b', 'd']

    obj [obj > 2]

    1.1.2 Series也可以是一个长度固定的有序字典

    ‘b’ in obj >> True

    可以直接由字典生成Series,假设stata“是一个字典,则

    obj1 = Series(stata)

    • 利用函数检查数据缺失:

    pd.isnull(obj1)

    pd.notnull(obj1)

    • isnull和notnull也是Series的实例方法:

    obj.isnull()

    obj.notnull()

    1.1.3 自动对齐索引功能

    obj2 = pd.Series([1, 2, 3, 4], index = ['a', 'b', 'c', 'd'])

    obj3 = pd.Series([4, 2, 6, 1], index = ['b', 'c', 'd', 'f'])

    obj4 = obj2 + obj3

    输出:

    a     NaN
    b     6.0
    c     5.0
    d    10.0
    f     NaN
    dtype: float64
    

    Series对象自身和其索引都有name属性

    obj4.name = 'population'
    obj4.index.name = 'state'
    obj4

    输出:

    state
    a     NaN
    b     6.0
    c     5.0
    d    10.0
    f     NaN
    Name: population, dtype: float64
    

    1.2 DataFrame

    DataFrame表示的是矩阵的数据表,它包含已排序的列集合,每一列可以是不同的值类型(数值、字符串、布尔值等),DataFrame即有行索引也有列索引,被视为一个共享相同索引的Series的字典。在DataFrame中,数据被储存为一个以上的二维块,而不是列表、字典或其他一维数组的集合。可以利用分层索引在DataFrame中展现更高维度的数据。

    创建,将会按照index顺序排列

    data = {'state':['ohio', 'ohio', 'ohio', 'Nevada', 'Nevada', 'Nevada'],
    'year':[2000, 2001, 2002, 2003, 2004, 2005],
    'pop':[1.5, 1.7, 1.6, 5.0, 2.3, 3.1]}
    frame = pd.DataFrame(data)

    指定顺序

    frame = pd.DataFrame(data, column=['year', 'pop','state'])

    frame

    输出:

    state year pop
    0 ohio 2000 1.5
    1 ohio 2001 1.7
    2 ohio 2002 1.6
    3 Nevada 2003 5.0
    4 Nevada 2004 2.3
    5 Nevada 2005 3.1

    frame.head() #head方法会选出前五行

    frame.columns #读取列名

    frame.state #读取state列

    frame['state'] #读取state列

    frame.loc['three'] #读取第3行

    列的应用可以修改,若被赋值的列不存在,则会生成新的列

    frame['debt'] = 1.6 #在frame的最右侧增加一列debt,值全为1.6

    frame['debt'] = np.arange(6) #在frame的最右侧增加一列debt,值为0,1,2,3,4,5

    frame['eastern'] = frame.state == 'ohio' #在frame的最右侧增加一列eastern,值为布尔值

    del frame['eastern'] #删除eastern列

    frame.T #转置frame,和Numpy的语法一致

    frame.set_index('year') # 设置year为索引

    frame.reset_index('year') # 还原索引为默认的整型索引(增加了一列整型索引)

    ​ #reset_index(drop=True)(不增加一列整型索引)

    1.3 索引对象

    索引对象不可变,用户无法修改索引对象。

    2、基本功能

    了解与Series或DataFrame中数据交互的基础机制。

    2.1 重建索引

    reindex方法

    obj = pd.Series([4.5, 7.2, -5.3, 3.6], index=['d','b','a','c'])

    obj2 = obj.reindex(['a','b','c','d','e']) #按照新索引排序obj,索引e的值之前不存在,将引入缺失值(NaN)

    reindex方法还可添加参数。

    2.2 轴向上删除条目

    new_obj = obj2.drop('c') #删除obj的第三行

    frame = frame.dorp(['Nevada']) #删除的Nevada行

    .drop还可添加参数

    2.3 索引、选择与过滤

    选择

    obj['b'] #选择索引为b的行

    obj[1:3] #选择第1-3行

    obj[[1, 3]] #选择第1行和3行

    obj[obj < 2] #选择值小于2的行

    frame的选择类似,既可以选择行,也可以选择列

    还可以使用loc和iloc选择数据

    2.4 整数索引

    2.5 算术和数据对齐

    • 使用填充值得算术方法

    df1.add(df2, fill_value=0) #加法时缺失值补0

    还有别的方法:加减乘除、整除、幂次方等

    2.6 函数应用和映射

    • Numpy的通用函数对pandas对象也有效

    np.abs(frame) #计算frame值得绝对值

    • 可以将函数用于一行或一列

      2.7 排序和排名

      obj.sort_index()

      frame.sort_index(axis = 1)

      frame.sort_values()

    3、描述统计性的概述与计算

    作者:张清博

    -------------------------------------------

    个性签名:半途而废

    本文如有帮助,记得在右下角点个“推荐”哦,在此感谢!

  • 相关阅读:
    动软代码生成器 修改配置
    显示转换explicit和隐式转换implicit
    Memcache学习整理
    SQL2008-分页显示3种方法
    SQL2008-表对表直接复制数据
    SQL2008-删除时间字段重复的方法
    SQL2008-中不想插入从复记录
    SQL2008-c:PROGRA~1COMMON~1SystemOLEDB~1oledb32.dll出错找不到指定的模块
    ACCESS-如何多数据库查询(跨库查询)
    ACCESS-字符函数
  • 原文地址:https://www.cnblogs.com/Ireland/p/12382308.html
Copyright © 2011-2022 走看看