pandas是基于NumPy的一种数据分析工具,提供了大量的数据操作和分析功能,特别是在数据清洗和预处理方面,更是为广大数据从业者提供了强大的支持,成为数据科学、统计分析和金融领域不可或缺的技术工具。

一、数据结构

pandas主要支持三种数据结构Series、DataFrame以及Panel,其中最常用的是DataFrame。DataFrame可以看做一个关系型数据库的数据表,其中包含多行多列的数据。


    #创建DataFrame
    import pandas as pd
    data = {'name':['Tom', 'Jack', 'Steve', 'Ricky'],'age':[28,34,29,42]}
    df = pd.DataFrame(data)
    print df

    #从CSV读取DataFrame
    df = pd.read_csv('data.csv')
    print df

在创建DataFrame时,可以使用Python基本数据类型以及NumPy、字典等格式进行创建;在从CSV读取DataFrame时,只需要指定CSV文件名称即可实现读取数据并创建DataFrame。

二、数据操作

在数据清洗和预处理方面,pandas提供了大量的数据操作功能,比如缺失值处理、数据筛选与排序、数据聚合与统计等等。

1. 缺失值处理


    #查找缺失值
    df.isnull()

    #删除缺失值
    df.dropna()

    #填充缺失值
    df.fillna(0)

在数据处理过程中,经常会出现缺失值的情况。pandas提供了isnull()函数可以查找缺失值,然后可以使用dropna()函数删除缺失值,或者使用fillna()函数将缺失值填充为指定的值。

2. 数据筛选与排序


    #数据筛选
    df[df['age'] > 30]

    #数据排序
    df.sort_values('age')

在数据分析中,往往需要筛选特定条件下的数据,可以使用df[df[‘age’] > 30]这种方式实现数据筛选;针对特定字段可以使用sort_values()函数实现数据排序。

3. 数据聚合与统计


    #求和
    df.sum()

    #平均值
    df.mean()

    #最大值
    df.max()

    #最小值
    df.min()

在进行数据分析和统计过程中,经常需要对数据进行聚合和统计。pandas提供了sum()、mean()、max()、min()等函数,可以很方便地实现数据的聚合和统计。

三、数据可视化

数据可视化可以有效地帮助我们展示数据的趋势和变化,pandas可以使用matplotlib库实现数据可视化。

1. 折线图


    %matplotlib inline
    import matplotlib.pyplot as plt

    #折线图
    df.plot(kind='line',x='name',y='age')
    plt.show()

使用matplotlib库,可以通过plot()函数实现绘制各种图形。针对折线图,通过指定kind=’line’可以实现绘制折线图。

2. 柱状图


    #柱状图
    df.plot(kind='bar',x='name',y='age')
    plt.show()

针对柱状图,只需要将kind属性指定为bar即可实现绘制柱状图。

3. 饼图


    #饼图
    df.plot(kind='pie',x='name',y='age')
    plt.show()

使用kind=’pie’属性可以实现绘制饼图。

四、数据分析实例

最后,我们通过一个简单的实例来展示pandas的强大功能。

使用pandas和matplotlib,我们可以对股票数据进行分析,并绘制股票价格走势图。


    #导入数据
    import pandas_datareader as pdr
    import datetime
    AAPL = pdr.get_data_yahoo('AAPL', 
                          start=datetime.datetime(2006, 10, 1), 
                          end=datetime.datetime(2012, 1, 1))

    #计算收益率
    AAPL['ret'] = AAPL['Close'].pct_change()

    #绘制走势图
    AAPL[['Close','ret']].plot(subplots=True,color='blue',figsize=(10,6))

    #数据统计
    AAPL.describe()

    #数据相关性分析
    AAPL.corr()

以上代码实现了获取苹果公司股票数据,并计算收益率。然后使用subplots属性和figsize属性绘制走势图,通过describe()函数实现对数据的统计分析,使用corr()函数实现对数据相关性的分析。

总结

pandas作为一种强大的数据分析工具,为数据科学和金融分析领域提供了强有力的技术支持。通过本文中的介绍,大家可以清晰地了解了pandas的数据结构、数据操作、数据可视化、数据分析等方面的功能。相信在实际工作和学习过程中,这些知识点对大家都会起到一定的帮助。