pandas合并操作
在实际工作中,我们的数据经常存储在多个文件中,这时候就需要挨个读取出来,然后合并成一个DataFrame
对象。在pandas
中,可以通过pd.concat
和pd.merge
来实现合并的功能。
pd.concat:
pd.concat(datas, axis=1)
,按照行或者列合并多个数据,axis=0
为列索引,axis=1
为行索引。比如我们以二手车数据为例,合并广州和北京的二手车数据。示例代码如下:
其中df_gz
和df_bj
的列名都是一样的,上述代码是将多行合并在一起。
如果要将不同列的数据合并在一起,那么则根据行索引名称进行拼接。
pd.merge:
pd.merge(left, right, how="inner", on=None, left_on=None, right_one=None)
类似于SQL
语句中的连接。都是指定按照共同键值对合并或者左右内连接。参数意义如下:
-
left
和right
:两个需要合并的DataFrame
对象。
:指定合并的方式。有以下可选参数。
Merge Method | SQL Join Name | 描述 |
left | LEFT OUTER JOIN | 只使用左边的DataFrame的key作为连接字段 |
right | RIGHT OUTER JOIN | 只使用右边的DataFrame的key作为连接字段 |
outer | FULL OUTER JOIN | 使用左边和右边的key值的并集连接 |
inner | INNER JOIN | 使用左边和右边的key值的交集连接 |
-
on
:按照哪个字段进行合并,指定的键必须在两个DataFrame
中都存在。 -
left_on
:左连接的字段。 -
right_on
:右连接的字段。
pd.merge合并:
- 使用
left_on
和right_on
参数合并:
输出结果如下:
执行merge
操作代码如下:
输出结果为:
- 使用
on
参数合并:
案例对象如下:
内连接:
左连接:
右连接:
外连接: