Pandas学习笔记

本学习笔记来自于莫烦Python,原视频链接

一、Pandas基本介绍和使用

Series数据结构:索引在左,值在右

import pandas as pd
import numpy as np
s = pd.Series([1,3,6,np.nan,44,1])

print(s)
"""
0     1.0
1     3.0
2     6.0
3     NaN
4    44.0
5     1.0
dtype: float64
"""

DataFrame数据结构:表格型数据结构,包含一组有序的列,每列的值类型可以是不同的。它既有行索引也有列索引,可以看做是Series组成的大字典。

dates = pd.date_range('20160101',periods=6)
df = pd.DataFrame(np.random.randn(6,4),index=dates,columns=['a','b','c','d'])
print(df) """ a b c d 2016-01-01 -0.253065 -2.071051 -0.640515 0.613663 2016-01-02 -1.147178 1.532470 0.989255 -0.499761 2016-01-03 1.221656 -2.390171 1.862914 0.778070 2016-01-04 1.473877 -0.046419 0.610046 0.204672 2016-01-05 -1.584752 -0.700592 1.487264 -1.778293 2016-01-06 0.633675 -1.414157 -0.277066 -0.442545 """

DataFrame的三种创建方法

  1. df = pd.DataFrame(np.random.randn(6,4),index=dates,columns=['a','b','c','d'])
    

     即指定了行与列的标签

  2. df1 = pd.DataFrame(np.arange(12).reshape((3,4))) 不指定行与列的标签,默认为从0开始生成index
  3. 对每一的数据进行特殊对待
df2 = pd.DataFrame({'A' : 1.,
            'B' : pd.Timestamp('20130102'),
                    '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'})

其中‘A’,‘B’等为列标签

属性或方法

功能

df.dtypes 查看数据类型
df.index 查看行名称
df.columns 查看列名称
df.values 查看所有df的值
df.describe() 查看count,mean,std,min等数据总结
df.T df的转置
df.sort_index(axis=1,ascending=False) 对数据索引排序输出
df.sort_values(by='column_name') 对数据值排序输出

 二、利用Pandas选择数据

简单筛选

#选择df中列名称为A的元素
df.['A'] df.A
#选择一到三行的数据
df[0:3]

通过pandas的内置函数筛选

根据标签筛选 loc

#通过标签选择数据,可以选择某几行或某几列
#选择行标签为‘20130102’,列标签为‘A’或‘B’的数据 
df.loc['20130102',['A','B']]

根据位置筛选 iloc

#选择行位置3-5,列位置1-3的数据
df.iloc[3:5,1:3]
#选择行位置为1,3,5,列位置为1-3的数据
df.iloc[[1,3,5],1:3]

根据标签和位置的混合筛选 ix

#选择行位置为0-3,列名称为'A','C'的数据
df.ix[:3,['A','C']]

根据布尔表达式进行筛选

#选出‘A’的值大于8的所有数据
df[df.A>8]
'''
 A   B   C   D
2013-01-04  12  13  14  15
2013-01-05  16  17  18  19
2013-01-06  20  21  22  23
'''

 

posted @ 2018-10-19 15:02  刘小鸭  阅读(242)  评论(0编辑  收藏  举报