pandas入门①

作者: 柳叶刀与小鼠标 | 来源:发表于2018-08-14 14:57 被阅读9次

    本指南直接来自pandas官方网站上的10分钟pandas指南。 我将它改写以使代码更易于访问。 本指南适用于之前未使用pandas的初学者。

    使用如下缩写:
    df:任意的Pandas DataFrame对象
    s:任意的Pandas Series对象

    创建数据

    # -*- coding: utf-8 -*-
    """
    Created on Tue Aug 14 14:12:39 2018
    
    @author: 夜神moon
    """
     # In[*]
     #加载相关包
    import pandas as pd
    import numpy as np
    import matplotlib.pyplot as plt
    
    
    • 创建对象
     # In[*]
     s = pd.Series([1,3,5,np.nan,6,8])
    

    s = pd.Series([1,3,5,np.nan,6,8])
    s
    Out[4]:
    0 1.0
    1 3.0
    2 5.0
    3 NaN
    4 6.0
    5 8.0
    dtype: float64

    • 通过传递一个numpy array,时间索引以及列标签来创建一个DataFrame:
    
    dates = pd.date_range('20141101', periods=6)
    dates
    df = pd.DataFrame(np.random.randn(6,4), 
                       index=dates,columns=['one','two','three','four'])
    df
    Out[5]: 
                     one       two     three      four
    2014-11-01  2.220859  0.303361  1.594748 -1.381258
    2014-11-02 -0.712405 -1.659302  0.050692  1.258252
    2014-11-03  0.375293  0.884031  0.439022  0.703665
    2014-11-04  0.787441 -0.413331 -2.767427 -0.763200
    2014-11-05 -1.523144  0.030411  0.916363 -0.808864
    2014-11-06 -0.884664 -0.188278 -0.307767 -0.054792
    
    • 通过传递一个能够被转换成类似序列结构的字典对象来创建一个DataFrame:
    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"])})
    
    df2
    
    • 常用的导入数据函数
    导入数据
    
    pd.read_csv(filename):从CSV文件导入数据
    pd.read_table(filename):从限定分隔符的文本文件导入数据
    pd.read_excel(filename):从Excel文件导入数据
    pd.read_sql(query, connection_object):从SQL表/库导入数据
    pd.read_json(json_string):从JSON格式的字符串导入数据
    pd.read_html(url):解析URL、字符串或者HTML文件,抽取其中的tables表格
    pd.read_clipboard():从你的粘贴板获取内容,并传给read_table()
    pd.DataFrame(dict):从字典对象导入数据,Key是列名,Value是数据
    
    • 常用的查看、检查数据函数
    
    df.head(n):查看DataFrame对象的前n行
    df.tail(n):查看DataFrame对象的最后n行
    df.index  查看行名
    df.columns  查看列名
    df.values  查看矩阵
    df.shape():查看行数和列数
    df.info():查看索引、数据类型和内存信息
    df.describe():查看数值型列的汇总统计
    s.value_counts(dropna=False):查看Series对象的唯一值和计数
    df.apply(pd.Series.value_counts):查看DataFrame对象中每一列的唯一值和计数
    

    数据排序

    df.sort_index(axis=1, ascending=False)  # 即按列名排序,交换列位置。
    df.sort_values(by='B')  # 按照列B的值升序排序
    

    数据选取

    df[col]:根据列名,并以Series的形式返回列
    df[[col1, col2]]:以DataFrame形式返回多列
    s.iloc[0]:按位置选取数据
    s.loc['index_one']:按索引选取数据
    df.iloc[0,:]:返回第一行
    df.iloc[0,0]:返回第一列的第一个元素
    
    • 查看第四行数据
    df.loc[dates[3]]
    Out[17]: 
    one      0.787441
    two     -0.413331
    three   -2.767427
    four    -0.763200
    Name: 2014-11-04 00:00:00, dtype: float64
    
    • 通过标签来在多个轴上进行选择
    df.loc[:,['A','B']]
    #                    A         B
    # 2013-01-01  0.469112 -0.282863
    # 2013-01-02  1.212112 -0.173215
    # 2013-01-03 -0.861849 -2.104569
    # 2013-01-04  0.721555 -0.706771
    # 2013-01-05 -0.424972  0.567020
    # 2013-01-06 -0.673690  0.113648
    
    • 标签切片
    df2.loc['1':'3',['A','B']]
    Out[23]: 
         A          B
    1  1.0 2013-01-02
    2  1.0 2013-01-02
    3  1.0 2013-01-02
    

    数据统计

    df.describe():查看数据值列的汇总统计
    df.mean():返回所有列的均值
    df.corr():返回列与列之间的相关系数
    df.count():返回每一列中的非空值的个数
    df.max():返回每一列的最大值
    df.min():返回每一列的最小值
    df.median():返回每一列的中位数
    df.std():返回每一列的标准差
    

    相关文章

      网友评论

        本文标题:pandas入门①

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