Dataframe 合并

一、简介

python中pandas的DataFrame是数据分析中常用的数据结构之一,通常从外部文件中导入的文件都是存储为DataFrame格式的,因此掌握DataFrame的相关操作有助于快速准确的进行后续的数据分析,本节主要介绍DataFrame的合并过程,主要参考了《利用python进行数据分析》这本书。
二、DataFrame合并
其实可以将python的DataFrame类型的一个数据看出一个SQL中的数据表,DataFrame的合并其实就有SQL中的表关联是完全相似的,其会有内连接、外链接、左连接和右连接之类的分类。下面分别从完全相同的DataFrame合并及按照指定列进行合并两个方面介绍。
(一)完全相同的DataFrame的合并
这里面所说的完全相同是指两个DataFrame的所有的列名完全相同,当然列名不同也是能合并的,具体解释如下图的程序所示:
首先定义三个不同的DataFrame:
 Python Code 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
from pandas import Series,DataFrame 
import pandas as pd

data1 = {'state':['ohio','ohio'],
         'year':[2000,2001]}
data2 = {'state':['Nevada','Nevada'],
         'year':[2001,2002]}

frame1 = DataFrame(data1,columns=['state','year'])
frame2 = DataFrame(data2,columns=['state','year'],index=['one','two'])
frame3 = DataFrame(data1,columns=['state','year1'])

print(frame1)
print('--------------------------')
print(frame2)
print('--------------------------')
print(frame3)
三个DataFrame中的内容分别如下图所示:
python <wbr>pandas <wbr>DataFrame合并
通过合并DataFrame可以得到如下图所示的结果:
python <wbr>pandas <wbr>DataFrame合并
其中frame1和frame2的有完全相同的列名,因此合并后的结果merge1还是有两个列;而frame1和frame3只有一个列名相同,因此合并的结果是保留共同的列在加上各自所有的列名,故结果为三列数据了。
由上面的解释我们同时能够得到append方法的另外一个功能就是可以给DataFrame方法添加列。
(二)按照指定列DataFrame的合并(merge)
按照指定列合并DataFrame就相当于SQL中不同表之间按照不同的字段进行join操作一样,DataFrame中的合并主要用merge函数,下面首先解释一下merge函数的主要用法及参数:
pd.merge(df1,df2)
主要参数介绍:
left:参与合并的左边的DataFrame(相当于SQL的join中的左表);
right:参数合并的右边的DataFrame(相当于SQL的join中的右表);
how:为合并的方式,分别为'inner','outer','left','right',默认为'inner'(相当于SQl中表连接的内连接、外链接、左链接和右连接);
on:两个DataFrame用户连接的列名,必须同时存在于两个DataFrame中,如果未指定则为两个表的交集作为连接键;
left_on:左表用于连接的列(主要用户两个DataFrame不存在相同的列名时);
right_on:右表用于连接的列;
left_index:将左边的DataFrame的索引作为连接键;
right_index:将右边的DataFrame的索引作为连接键;
sort:根据连接键对合并的结果进行排序;
suffixes:字符串的元组,用于追加于重叠列名的末尾,默认为(_x,_y)
 

猜你喜欢

转载自www.cnblogs.com/ziheIT/p/8974798.html