持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第8天,点击查看活动详情
注意:本案例使用 Jupyter Notebook 进行案例演示
1. 表操作
1.1 pd.concat实现合并
pd.concat([data1, data2], axis=1)
- 按照行或列进行合并
- axis=0为列索引
- axis=1为行索引
导入相关库并读取数据:读取第一张想要合并到表
# 1. 读取数据
stock_new = pd.read_csv("stock_new.csv")
stock_new.head()
运行结果如下图所示:
读取第二张想要合并的表:
stock_new = pd.read_csv("stock_change.csv")
stock_change.head()
1.1.1 按行的方向进行拼接
合并上面两张表,并且按照行的方向进行拼接
# 按行的方向进行拼接
pd.concat([stock_new, stock_change], axis=1)
运行结果如下图所示:两张表中可能会存在这种情况:表一中的某样本在表二中不存在,则合并后不存在的样本用NaN缺失值自动补齐。
- 可以发现表头的个数多了很多,这是因为两表按照行的方向进行了拼接。
1.1.2 按列的方向进行拼接
如果两个表字段不一致,进行竖直拼接,没有的部分用NaN补齐。字段一致就会填入该填的数据。
将两表按照列的方向进行合并:
pd.concat([stock_new, stock_change], axis=0)
# 发现在列的方向多了一倍样本
运行结果如下图所示:发现新表的样本数量多了一倍,这是因为按照列的方向进行的拼接。
1.2 pd.merge实现合并
pd.merge(left, right, how='inner', on=None)
-
可以指定按照两组数据的共同键值对合并或者左右各自
-
left:左表
-
right:右表
-
on:按哪个字段进行合并
-
how:连接方式
- inner:共有的键保留下来,不共有的键就不要了(用的最多)
- left:左表的字段都保留下来,右表配合左表
- right:右表中的字段都保留,左表配合右表
- outer:外连接,两个表的键都保留
通俗理解就是按照两个表中共同存在的字段进行合并。举一个例子,比如表1有date字段,表2也有date字段,那么我们可以使用pd.merge的方式,将两个表按照date字段进行合并(on=date
),经过合并会返回一个新表,新表就会将两表共有date字段的所在行保存下来。