美文网首页
pandas第一篇安装,概念,创建对象和基本属性

pandas第一篇安装,概念,创建对象和基本属性

作者: 望月明_e56e | 来源:发表于2019-07-16 18:05 被阅读0次
    前言 使用pandas以及一些概念

    前面已经系统的学习使用过mumpy,测试过了matplotlib。python数据分析三剑客numpy,pandas,matplotlib,本篇文章为pandas系列第一章,记述使用pandas过程中的问题。

    pandas的一些说明

    Pandas处理以下三个数据结构

    1. 系列(Series) Series 系列关键点:
      • 均匀数据
      • 尺寸大小
      • 不变数据的值可变
    2. 数据帧(DataFrame) dataframe 关键点:
      • 异构数据
      • 大小可变
      • 数据可变
    3. 面板(Panel) 面板是具有异构数据的三维数据结构。在图形表示中很难表示面板。但是一个面板可以说明为DataFrame的容器。关键点:
      • 异构数据
      • 大小可变
      • 数据可变
    维数和描述考虑这些数据结构的最好方法是,较高维数据结构是其较低维数据结构的容器。 例如,DataFrame是Series的容器,Panel是DataFrame的容器。
    数据结构 维数 描述
    系列 1 1D标记均匀数组,大小不变
    数据帧 2 一般2D标记,大小可变的表结构与潜在的异质类型的列。
    面板 3 一般3D标记,大小可变数组
    构建和处理两个或更多个维数组是一项繁琐的任务,用户在编写函数时要考虑数据集的方向。 但是使用Pandas数据结构,减少了用户的思考。
    1. 安装
    pip3 install pandas
    
    2. 检测
    >>> import pandas as pd
    >>> pd.__version__
    '0.24.2'
    
    • 创建Series对象
    >>> s = pd.Series([12,3,4,np.nan,4,7])
    >>> s
    0    12.0
    1     3.0
    2     4.0
    3     NaN
    4     4.0
    5     7.0
    dtype: float64
    >>> type(s)
    <class 'pandas.core.series.Series'>
    
    • 带有日期时间标签的DataFrame对象
    >>> dates = pd.date_range('20130101', periods=6)
    >>> dates
    DatetimeIndex(['2013-01-01', '2013-01-02', '2013-01-03', '2013-01-04',
                   '2013-01-05', '2013-01-06'],
                  dtype='datetime64[ns]', freq='D')
    dt = pd.DataFrame(np.random.randn(6,4),index=dates,columns=list('abcd'))
    >>> dt
                       a         b         c         d
    2013-01-01  3.037169 -0.858770  0.146364 -0.095942
    2013-01-02  0.537527  0.726589 -0.096588 -0.210670
    2013-01-03  0.797981  1.234482 -0.742337 -0.884175
    2013-01-04  0.354584 -0.321732 -0.692533 -1.058125
    2013-01-05 -1.010910  2.169853 -0.681772 -0.237849
    2013-01-06 -0.016872 -0.532582 -1.274204 -1.907988
    
    • 通过传递可以转换为类似系列的对象的字典来创建DataFrame。使用这个dict对象变为数组:
    df2 = pd.DataFrame({ 'A' : 1.,
                         'B' : pd.Timestamp('20170102'),
                         'C' : pd.Series(1,index=list(range(4)),dtype='float32'),
                         'D' : np.array([3] * 4,dtype='int32'),
                         'E' : pd.Categorical(["test","train","test","train"]),
                         'F' : 'foo' })
    
    # 头
    print(df2.head())
    # 尾数据
    print(df2.tail(3))
    # 索引
    print(df2.index)
    # 列明
    print(df2.columns)
    # 元素数据
    print(df2.values)
    # 数组描述
    print(df2.describe())
    # 转置
    print(df2.T)
    # 排序,按照索引
    print(df2.sort_index(axis=1,ascending=False))
    # 排序,按照值排序 
    print(df2.sort_values(by='B'))
    # 获取区块,索引一部分数据,按照列索引数据,分片获取位置
    
    • 可以看到不同的数据类型:
    >>> dt.dtypes
    1      int64
    2    float64
    3    float64
    4     object
    dtype: object
    
    • 选择和赋值标准的python、numpy表达式非常直观,并且便于交互工作.但是生产环境,我们推荐使用优化的pandas访问数据方法 .at .iat .loc .iloc等方法参考数据文档索引,选择数据,多索引,高级索引
    # 使用下面的方式相当于生成一个series
    print(df2['A'])
    # 使用索引切片,[0:3]
    # 打印2行数据
    print(df2[0:2])
    # 指定日期
    dates = pd.date_range('20170101', periods=6)
    df2 = pd.DataFrame(np.random.randn(6,4), index=dates, columns=list('ABCD'))
    # 使用索引字段,分片索引数据
    print(df2['20170102':'20170103'])
    # 通过标签获取一整行的数据
    df.loc[dates[0]]
    # 通过标签选择多个轴上的数据
    df.loc[:,['A','B']]
    # 通过标签同时在两个轴上切片
    df.loc['20170101':'20170103',['A','B']]
    # 减少返回的对象大小
    df.loc['20170101',['A','B']]
    # 获取标量值
    df.loc[dates[0],'A']
    # 快速访问at
    df.at[dates[0],'A']
    # 按照位置选择 iloc
    df.iloc[3]
    # 通过整数切片
    df.iloc[3:5,0:2]
    # 通过整数位置获取分片参数
    df.iloc[[1,2,4],[0,2]]
    # 整行的切片
    df.iloc[1:3,:]
    # 整列切片
    df.iloc[:,1:3]
    # 获取具体位置
    df.iloc[1,1]
    # 布尔值索引
    df[df.A >0]
    

    相关文章

      网友评论

          本文标题:pandas第一篇安装,概念,创建对象和基本属性

          本文链接:https://www.haomeiwen.com/subject/wuztlctx.html