在Pandas的实践过程中,我们经常需要将两个DataFrame合并组合在一起再进行处理,比如将不同来源的数据合并在一起,或者将不同日期的DataFrame合并在一起。DataFrame的合并组合从方向上分,大体上分为两种情况:横向的,纵向的。(这个很容易理解吧)
看下如下的图示(图片来自Pandas官网)
横向
纵向
另外需要注意的是,两个DataFrame在合在一起的时候,如果针对重叠项(比如都有column B)会有两种不同的处理方式,一种是针对重叠项进行合并处理(比如相加,或者直接取代);另一种是忽略重叠项,只是简单的组合在一起。前者我们称为合并,后者我们叫做组合。
另外,在Pandas中有很多不同函数和不同用法,比如有concat, join, merge, append,它们各有不同的使用场景。
纵向连接
In [45]: import pandas as pd
In [46]: df = pd.DataFrame({"name": ["zhangsan", "lisi", "wangwu"], "city": ["beijing"
...: , "beijing", "shenzhen"], "order": [12, 33, 67]})
In [47]: df
Out[47]:
city name order
0 beijing zhangsan 12
1 beijing lisi 33
2 shenzhen wangwu 67
In [48]: df2 = pd.DataFrame({"name": ["zhanghai", "liyang", "wangjing"], "city": ["sha
...: nghai", "shenzhen", "chengdu"], "order": [2, 3, 7]})
In [49]: df2
Out[49]:
city name order
0 shanghai zhanghai 2
1 shenzhen liyang 3
2 chengdu wangjing 7
# concat默认按行拼接(即纵向连接,axis=0), 也可以按列来连接(axis=1)
# 注意concat拼接时,其参数是一个数组 ,因此可以拼接多个DataFra