- Python数据科学教程
- Python数据科学 - 首页
- Python数据科学 - 入门
- Python数据科学 - 环境搭建
- Python数据科学 - Pandas
- Python数据科学 - NumPy
- Python数据科学 - SciPy
- Python数据科学 - Matplotlib
- Python数据处理
- Python数据操作
- Python数据清洗
- Python处理CSV数据
- Python处理JSON数据
- Python处理XLS数据
- Python关系型数据库
- Python NoSQL数据库
- Python日期和时间
- Python数据整理
- Python数据聚合
- Python读取HTML页面
- Python处理非结构化数据
- Python分词
- Python词干提取和词形还原
- Python数据可视化
- Python图表属性
- Python图表样式
- Python箱线图
- Python热力图
- Python散点图
- Python气泡图
- Python 3D图表
- Python时间序列
- Python地理数据
- Python图数据
Python - 数据整理
数据整理涉及处理各种格式的数据,例如合并、分组、连接等,目的是为了分析数据或准备数据以与另一组数据一起使用。Python具有内置功能,可以将这些整理方法应用于各种数据集以实现分析目标。本章将介绍一些描述这些方法的示例。
合并数据
Python中的Pandas库提供单个函数merge作为所有DataFrame对象之间标准数据库连接操作的入口点。
pd.merge(left, right, how='inner', on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=True)
现在让我们创建两个不同的DataFrame并对其执行合并操作。
# import the pandas library import pandas as pd left = pd.DataFrame({ 'id':[1,2,3,4,5], 'Name': ['Alex', 'Amy', 'Allen', 'Alice', 'Ayoung'], 'subject_id':['sub1','sub2','sub4','sub6','sub5']}) right = pd.DataFrame( {'id':[1,2,3,4,5], 'Name': ['Billy', 'Brian', 'Bran', 'Bryce', 'Betty'], 'subject_id':['sub2','sub4','sub3','sub6','sub5']}) print left print right
其输出如下:
Name id subject_id 0 Alex 1 sub1 1 Amy 2 sub2 2 Allen 3 sub4 3 Alice 4 sub6 4 Ayoung 5 sub5 Name id subject_id 0 Billy 1 sub2 1 Brian 2 sub4 2 Bran 3 sub3 3 Bryce 4 sub6 4 Betty 5 sub5
分组数据
在数据分析中,经常需要对数据集进行分组,以便根据数据集中存在的各种组获得结果。Pandas具有内置方法,可以将数据汇总到各个组中。
在下面的示例中,我们按年份对数据进行分组,然后获取特定年份的结果。
# import the pandas library import pandas as pd ipl_data = {'Team': ['Riders', 'Riders', 'Devils', 'Devils', 'Kings', 'kings', 'Kings', 'Kings', 'Riders', 'Royals', 'Royals', 'Riders'], 'Rank': [1, 2, 2, 3, 3,4 ,1 ,1,2 , 4,1,2], 'Year': [2014,2015,2014,2015,2014,2015,2016,2017,2016,2014,2015,2017], 'Points':[876,789,863,673,741,812,756,788,694,701,804,690]} df = pd.DataFrame(ipl_data) grouped = df.groupby('Year') print grouped.get_group(2014)
其输出如下:
Points Rank Team Year 0 876 1 Riders 2014 2 863 2 Devils 2014 4 741 3 Kings 2014 9 701 4 Royals 2014
连接数据
Pandas提供各种工具,可以轻松地将Series、DataFrame和Panel对象组合在一起。在下面的示例中,concat函数沿轴执行连接操作。让我们创建不同的对象并进行连接。
import pandas as pd one = pd.DataFrame({ 'Name': ['Alex', 'Amy', 'Allen', 'Alice', 'Ayoung'], 'subject_id':['sub1','sub2','sub4','sub6','sub5'], 'Marks_scored':[98,90,87,69,78]}, index=[1,2,3,4,5]) two = pd.DataFrame({ 'Name': ['Billy', 'Brian', 'Bran', 'Bryce', 'Betty'], 'subject_id':['sub2','sub4','sub3','sub6','sub5'], 'Marks_scored':[89,80,79,97,88]}, index=[1,2,3,4,5]) print pd.concat([one,two])
其输出如下:
Marks_scored Name subject_id 1 98 Alex sub1 2 90 Amy sub2 3 87 Allen sub4 4 69 Alice sub6 5 78 Ayoung sub5 1 89 Billy sub2 2 80 Brian sub4 3 79 Bran sub3 4 97 Bryce sub6 5 88 Betty sub5
广告