美文网首页我爱编程
说说Python中的pandas模块(1)

说说Python中的pandas模块(1)

作者: Ryan_Yang | 来源:发表于2017-05-22 01:01 被阅读0次

    Pandas是Python中最常用的数据分析模块,其强大的数据读写性能,丰富的可视化工具,便捷的数据切片及索引功能让Pandas成为了一个Python标准化模块。从个人的使用感受而言,Pandas的确是一个必学的数据分析模块,今天顺便来复习一下吧。

    1. Load Pandas and read a csv file:
    import pandas as pd
    
    data = pd.read_csv('rhythm.csv')
    print data
    
    output:
       A  B  C  D
    0  1  2  3  4
    1  2  2  3  4
    2  3  2  3  4
    3  4  2  3  4
    4  5  2  3  4
    5  6  2  3  4
    6  7  2  3  4
    7  8  2  3  4
    
    1. 数据选择及切片
    In[5]: data['A']
    Out[5]: 
    0    1
    1    2
    2    3
    3    4
    4    5
    5    6
    6    7
    7    8
    Name: A, dtype: int64
    
    In[7]: data[['A','B’]]         
    Out[7]: 
       A  B
    0  1  2
    1  2  2
    2  3  2
    3  4  2
    4  5  2
    5  6  2
    6  7  2
    7  8  2
    
    In[8]: data[['B','A']]
    Out[8]: 
       B  A
    0  2  1
    1  2  2
    2  2  3
    3  2  4
    4  2  5
    5  2  6
    6  2  7
    7  2  8
    #注意,不能直接以data[‘A’,’B’]进行多列的选择```
    
    
    Pandas 现在有个问题就是,如果没有header,就非常难以选择某列数据,比如我想选择第二列数据,但是我不知道第二列数据的header,这个时候怎么办呢?这个时候有两种办法:
    
    * 第一是在读入数据时,就给你的data frame进行headers的命名:
    

    data = pd.read_csv(‘rhythm.cv', names = [‘A’,’B’,’C’,’D’])

    or

    data.columns = [‘A’,’B’,’C’,’D']

    * 第二是调用iloc()函数,例如我想截取第二列 (‘B’列)
    

    In[12]: data.iloc[:,1] #记住python总以0开头
    Out[12]:
    0 2
    1 2
    2 2
    3 2
    4 2
    5 2
    6 2
    7 2
    Name: B, dtype: int64

    通过.iloc()函数,我们甚至可以肆无忌惮的截取任意位置的数据:
    

    In[14]: data.iloc[[0,2,4],1:3]
    Out[14]:
    B C
    0 2 3
    2 2 3
    4 2 3

    3. 过滤及索引
    接下来我们说说data frame的过滤以及索引功能,举个栗子,加入我们现在想选出A列数字大于或者等于5的行,我们可以进行如下操作:
    

    In[15]: data[data.A>=5]
    Out[15]:
    A B C D
    4 5 2 3 4
    5 6 2 3 4
    6 7 2 3 4
    7 8 2 3 4

    或者设定多个筛选条件:
    

    In[16]: data[(data.A >= 5) & (data.A <= 7)]
    Out[16]:
    A B C D
    4 5 2 3 4
    5 6 2 3 4
    6 7 2 3 4

    我们也可以调用isin()函数来对某些值进行特定选择
    

    In[20]: data2[data2['A'].isin([3,6,7])]
    Out[20]:
    A B C D
    2 3 2 3 4
    5 6 2 3 4
    6 7 2 3 4

    今天暂时先说到这里,下一篇我们继续讨论pandas的一些进阶操作,一下提供一些常用的描述性函数作为参考:
    

    In[21]: data.head()
    Out[21]:
    A B C D
    0 1 2 3 4
    1 2 2 3 4
    2 3 2 3 4
    3 4 2 3 4
    4 5 2 3 4

    In[23]: data.tail(1)
    Out[23]:
    A B C D
    7 8 2 3 4

    In[24]: data.describe()
    Out[24]:
    A B C D
    count 8.00000 8 8 8
    mean 4.50000 2 3 4
    std 2.44949 0 0 0
    min 1.00000 2 3 4
    25% 2.75000 2 3 4
    50% 4.50000 2 3 4
    75% 6.25000 2 3 4
    max 8.00000 2 3 4

    In[26]: data.dtypes
    Out[26]:
    A int64
    B int64
    C int64
    D int64
    dtype: object

    
    
    
    
    
    
    
    

    相关文章

      网友评论

        本文标题:说说Python中的pandas模块(1)

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