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格式写入文件
  • 相关阅读:
    解决mongodb设备mongod命令不是内部或外部的命令
    Zoj 3545 Rescue the Rabbit(ac自己主动机+dp)
    中国云计算网站的第六次会议
    MYSQL,innodb_buffer_pool_size内存分配
    SharePoint综合Excel数据与Excel Web Access Web部分
    在小发现SQL字符串比较是不是他们的大写和小写敏感
    代码质量初步
    软件开发:速度 vs 质量
    UI概念体系要素
    模式与方法论
  • 原文地址:https://www.cnblogs.com/a00ium/p/14008955.html
Copyright © 2011-2022 走看看