Pandas 学习记录

最好还能能了解是要如何进行统计,Pandas 只是一个非常方便交互的工具,而且能通过代码的方式来进行分析统计,相比较于Excel,能更好的进行编程, 通过看官方的Quick Start 可以快速掌握这种运算方式

基本数据结构

From the offical document,the basic data structure is very similar to the ones of numpy, including Series( a list like the columns in the table), DataFrame( 2D table), Panel(3D table)

Quick Start

  • Use pip to install the pandas: sudo pip install pandas
  • Read data from out side data files, excel is always recommended, for a file could contain all the related data in multi sheets, e.g. pd.read_excel('foo.xlsx', 'Sheet1', index_col=None, na_values=['NA'])

  • Select data, by rows, columns, and indices, e.g.
    df[0], df[0:3] to select rows;
    t.loc[:,'newAmount'], t.loc[:,['newAmount','oldAmount']] to select columns;
    t.loc[0:5:,['newAmount','oldAmount']] to select rows and columns;
    t2[t2.newAmount >500] to select the rows that only satisfied the specific boolean functions

  • Operations, we can operate all the objects l1 or l2, like the numpy arrrays, l2+l1, l2-l1

  • Describe the data frame work, e.g. df is DataFrame and when we call df.describe(), we can have an overview on its data status

    count       5.00000
    mean     1001.00000
    std      1028.59127
    min       141.00000
    25%       341.00000
    50%       841.00000
    75%       941.00000
    max      2741.00000
    Name: newAmount, dtype: float64
  • Histogramming, which means value count and is pretty hard to understand, because it won’t directly operated on the real data, the DataFrame should be converted to another Series object and call the value_counts functions.
  • Apply
    这里用中文描述一下,对于每一行或者每一列进行处理,这个需要说一下,刚开始没理解,也是需要看源码才懂得

        df = pd.DataFrame(np.random.randn(8, 4), columns=['A','B','C','D'])
        #apply 函数中 默认是用 axis=0,表示对列进行操作
        a_row = df.apply(lambda x: x.max() - x.min())
        #返回的是 4*8的一个矩阵
        a_df = df.apply(lambda x: x+1)
    

    为什么返回 a_row 因为,x对应的是一列,对于这一列的操作最后返回的是一个数值,每一列都是如此,自然返回的就是一行了,而 a_df 的一列处理完成之后仍然是一列,所以处理完成之后仍然是一个 4*8 的矩阵

  • Group,非常非常屌炸天的函数,MySQL Group版本的完美升级版本,帮助我重新理解了Group。

    • Split,我们需要按照列来切分数据,因为切割点是在行上而不是在列上。而这个切分的标准实际上是一个函数,传统的Group By 实际上是一个内嵌的函数,传入的参数是整个一行的内容,如果这一行的内容符合函数,则分为一拨,范例
    • Applying,这个和上一部分的Apply 一样,数据已经被切分为一部分一部分的数据,我们要在这个的基础上进行操作,传入函数对数据进行操作,典型的操作分为 Aggregation, Transformation, Filtration, 可以单独使用也可以混合使用。
    • Combining,这个倒是没什么说的,就是将结果进行最终的展示

Advanced Techs

Pivot Tables

It’s hard to understand pivot tables, according to the wiki, there is a good example to organize all the data.

发表评论

电子邮件地址不会被公开。 必填项已用*标注

This site uses Akismet to reduce spam. Learn how your comment data is processed.