zoukankan      html  css  js  c++  java
  • pandas DataFrame

    DataFrame 二维,Series容器

    一、创建DataFrame

    # 方法一
    pd.DataFrame(data=None, index=None, columns=None)
    # data: array-like, 数据
    # index: array-like, 行索引 axis=0
    # columns: array-like, 列索引 axis=1
    
    # 方法二(字典)
    pd.DataFrame({'name': ['tom', 'alex'], 'age': [24, 34], 'hometown': ['xz', 'bj']}, index=list('ab'))
    # 字典的key是列索引
    
    pd.DataFrame([{'name': 'tom', 'age': 24, 'hometown': 'xz'}, {'name': 'alex', 'age': 34},
                {'name': 'bob', 'hometown': 'wx'}])
    # 每个字典是一条行数据
    # 没有的数据用NaN表示

    二、DataFrame的基础属性

    arr1.shape    # 行数 列数
    arr1.dtypes   # 列数据类型
    arr1.ndim     # 维度  
    arr1.index    # 行索引
    arr1.columns  # 列索引
    arr1.values   # 二维ndarry的数组

    三、DataFrame整体情况查询

    arr1.head(n)     # 显示头部几行,默认5行
    arr1.tail(n)     # 显示尾部数据几行,默认5行
    arr1.info()      # 相关信息浏览:行数、列数,列索引,列非空值个数,列类型,内存占用
    arr1.describe()  # 快速综合统计结果:计数,均值,标准差,最大值,四分位数,最小值

    四、排序

    arr1.sort_values(by="列索引", ascending=True)
    # ascending=True为升序,值为False为降序
    # 需要创建一个新的变量

    五、索引和切片

    1、原始
    a、方括号写数组,表示取行,对行进行操作
    b、方括号写字符串,表示取列,对列进行操作
    
    2、loc
    通过标签获取数据
    语法
    arr.loc[行标签, 列标签]
    # 用法和numpy的索引和切片相似(连续,不连续)
    # 切片的时候,顾尾
    例子
    arr3.loc['A', 'd']
    arr3.loc['A', ['a', 'd']]    
    arr3.loc['A': 'C', ['a', 'd']]     
    
    3、iloc
    通过位置获取数据
    语法
    arr.iloc[行位置, 列位置]
    # 用法和numpy的索引和切片相似(连续,不连续)
    # 切片的时候,顾头不顾尾
    例子
    arr3.iloc[0, 2]
    arr3.iloc[1:3, [2, 4]]
    
    4、布尔索引
    a、不符合布尔条件的使用NaN代替
    b、与 $
    arr3[(arr3 > 5) & (arr3 < 10)]
    b、或 |
    arr3[(arr3 < 5) | (arr3 > 10)]
    # 注意: 不同的条件之间,需要用括号括起来

    注意:df[列索引][布尔索引] = 值

    设置布尔索引为True的值

    六、常用字符串方法

    contains    # 返回表示各个字符串是否含有指定模式的布尔型数组
    len         # 计算各个字符串的长度
    lower、upper # 转换大小写,相当于各个元素执行x.lower()或x.upper()
    replace     # 用指定字符串替换找到的模式
    split       # 根据分隔符或正则表达式对字符串进行拆分
    
    例子
    arr[列索引].str.len()

    七、缺失数据的处理

    1、判断数据是否为NaN
    pd.isnull(数据)
    pd.isna(数据)
    
    pd.notna(数据)
    pd.notnull(数据)
    
    2、处理方式
    a、方式一,填充NaN
    filna(value=None, inplace=False)
    # inplace False 需要定义一个变量,接收结果, True不需要,在原地上修改
    例子
    arr1['age'] = arr1['age'].fillna(arr1['age'].mean())    # 填充平均值
    
    b、方式二,删除NaN(一般不推荐使用)
    arr1.dropna(axis=0, how="any", inplace=False)
    # axis 行数据
    # any 行数据含有一个NaN 删除, all 行数据全都是NaN 删除
    # inplace False 需要定义一个变量,接收结果, True不需要,在原地上修改
    例子:
    arr1 = arr1.dropna(axis=0, )
    
    c、处理0
    arr[arr==0] = np.nan
    注意:0不是必须要处理的数据

     八、pandas常用统计方法

    mean()      # 求均值 df['age'].mean()
    meidan()    # 中间值
    max()       # 最大值
    min()       # 最小值

     九、去重

    df[columns索引].unique()
  • 相关阅读:
    SpringBoot(十):SpringBoot的简单事务管理
    SpringBoot(九):SpringBoot集成Mybatis
    独立式智能扫码插座
    STC-51开发板-单片机控制数码管&按键&点阵综合操作
    单片机定时器与数码管静态显示
    半导体器件
    电路模型与规律
    单片机-引脚并行口结构讲解
    单片机-基础知识,存储原理,引脚简介———(第一个小程序)
    C语言-综合知识点
  • 原文地址:https://www.cnblogs.com/wt7018/p/11970710.html
Copyright © 2011-2022 走看看