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

2019-07-16  本文已影响0人  望月明_e56e
前言 使用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'
>>> 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'>
>>> 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
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
# 使用下面的方式相当于生成一个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]
上一篇 下一篇

猜你喜欢

热点阅读