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的数据结构、数据操作、数据可视化、数据分析等方面的功能。相信在实际工作和学习过程中,这些知识点对大家都会起到一定的帮助。