zoukankan      html  css  js  c++  java
  • Pandas简介

     
     
     



    Pandas非常适合许多不同类型的数据:

    • 列数据具有异构类型的表格数据,例如在SQL表或Excel电子表格中
    • 有序和无序(不一定是固定频率)时间序列数据。
    • 具有行和列标签的任意矩阵数据
    • 观察/统计数据集的任何其他形式。

    二进制安装程序:https://pypi.org/project/pandas

    来源存储库:http://github.com/pandas-dev/pandas

    问题回馈:https://github.com/pandas-dev/pandas/issues

    Pandas基本命令:

    导入以下命令以启动:

    import pandas as pd
    import numpy as np

    Pandas查看版本

    import pandas as pd
    print(pd.__version__)
    Key and Imports
    df pandas DataFrame object
    s pandas Series object
     
    
    
    密钥和导入
    df Pandas DataFrame对象
    s Pandas系列对象

    创建数据框:

    import pandas as pd
    df = pd.DataFrame({'X':[78,85,96,80,86], 'Y':[84,94,89,83,86],'Z':[86,97,96,72,83]});
    print(df)

    样本输出:

        XYZ                                                          
    0 78 84 86                                                          
    1 85 94 97                                                          
    2 96 89 96                                                          
    3 80 83 72                                                          
    4 86 86 83                                       
    

    创建数据系列:

    import pandas as pd
    s = pd.Series([2, 4, 6, 8, 10])
    print(s)

    样本输出:

    0 2                                                                
    1 4                                                                
    2 6                                                                
    3 8                                                                
    4 10                                                                
    dtype:int64

    创建测试对象
    pd.DataFrame(np.random.rand(20,5)) 5列20行随机浮动
    pd.Series(my_list) 从可迭代的my_list创建系列
    df.index = pd.date_range('1900/1/30', periods=df.shape[0]) 添加日期索引

    查看/检查数据

    df.head(n) DataFrame的前n行
    df.tail(n) DataFrame的最后n行
    df.shape 行数和列数
    df.info() 索引,数据类型和内存信息
    df.describe() 数值列的摘要统计
    s.value_counts(dropna=False) 查看唯一值和计数
    df.apply(pd.Series.value_counts) 所有列的唯一值和计数

    选拔

    df [col] 返回列的标签col为Series
    df [[col1,col2]] 将列作为新的DataFrame返回
    s.iloc [0] 按位置选择
    s.loc ['index_one'] 按索引选择
    df.iloc [0 ,:] 第一排
    df.iloc [0,0] 第一栏的第一元素

    数据清理

    df.columns = ['a','b','c'] 重命名列
    pd.isnull() 检查空值,返回布尔值Arrray
    pd.notnull() 与pd.isnull()相反
    df.dropna() 删除所有包含空值的行
    df.dropna(axis=1) 删除所有包含空值的列
    df.dropna(axis=1,thresh=n) 删除所有行的少于n个非空值
    df.fillna(x) 用x替换所有空值
    s.fillna(s.mean()) 用均值替换所有空值
    s.astype(float) 将系列的数据类型转换为float
    s.replace(1,'one') 将所有等于1的值替换为“ 1”
    s.replace([2,3],['two', 'three']) 将所有2替换为“两个”,将3替换为“三个”
    df.rename(columns=lambda x: x + 1) 列的重命名
    df.rename(columns={'old_name': 'new_ name'}) 选择性重命名
    df.set_index('column_one') 更改索引
    df.rename(index=lambda x: x + 1) 索引的重命名

    筛选,排序和分组依据

    df[df[col] > 0.6] 列col大于0.6的行
    df[(df[col] > 0.6) & (df[col] < 0.8)] 0.8> col> 0.6的行
    df.sort_values(col1) 按col1升序对值进行排序
    df.sort_values(col2,ascending=False) 按col2降序对值进行排序。5
    df.sort_values([col1,col2],ascending=[True,False]) 按col1升序对值排序,然后按col2降序对值排序
    df.groupby(col) 返回一个groupby对象以获取一列中的值
    df.groupby([col1,col2]) 从多个列返回groupby对象以获取值
    df.groupby(col1)[col2] 返回col2中值的平均值,并按col1中的值分组
    df.pivot_table(index=col1,values=[col2,col3],aggfunc=mean) 创建一个数据透视表,该数据透视表按col1分组并计算col2和col3的平均值
    df.groupby(col1).agg(np.mean) 在每个列中查找每个唯一col1组的平均值
    df.apply(np.mean) 在每列上应用函数np.mean()
    nf.apply(np.max,axis=1) 在每行上应用函数np.max()

    追加/合并

    df1.append(df2) 将df1中的行添加到df2的末尾(列应相同)
    pd.concat([df1, df2],axis=1) 将df1中的列添加到df2的末尾(行应相同)
    df1.join(df2,on=col1, how='inner') SQL样式将df1中的列与df2中的列连接在一起,其中col的行具有相同的值。“方法”可以是“左”,“右”,“外”或“内”

    统计

    df.describe() 数值列的摘要统计
    df.mean() 返回所有列的平均值
    df.corr() 返回DataFrame中列之间的相关性
    df.count() 返回每个DataFrame列中非空值的数量
    df.max() 返回每一列的最大值
    df.min() 返回每列中的最小值
    df.median() 返回每列的中位数
    df.std() 返回每列的标准偏差

    汇入资料

    pd.read_csv(filename) 从CSV文件
    pd.read_table(filename) 来自定界文本文件(例如TSV)
    pd.read_excel(filename) 从Excel文件
    pd.read_sql(query, connection_object) 从SQL表/数据库读取
    pd.read_json(json_string) 从JSON格式的字符串,URL或文件中读取。
    pd.read_html(url) 解析html URL,字符串或文件,并将表提取到数据框列表中
    pd.read_clipboard() 获取剪贴板中的内容并将其传递给read_table()
    pd.DataFrame(dict) 从字典中,列名称的键,列表中数据的值

    汇出资料

    df.to_csv(filename) 写入CSV文件
    df.to_excel(filename) 写入Excel文件
    df.to_sql(table_name, connection_object) 写入SQL表
    df.to_json(filename) 以JSON格式写入文件
  • 相关阅读:
    prototype.js超强的javascript类库
    MySQL Server Architecture
    Know more about RBA redo block address
    MySQL无处不在
    利用Oracle Enterprise Manager Cloud Control 12c创建DataGuard Standby
    LAMP Stack
    9i中DG remote archive可能导致Primary Database挂起
    Oracle数据库升级与补丁
    Oracle为何会发生归档日志archivelog大小远小于联机重做日志online redo log size的情况?
    Oracle Ksplice如何工作?How does Ksplice work?
  • 原文地址:https://www.cnblogs.com/a00ium/p/14008955.html
Copyright © 2011-2022 走看看