表的纵向拼接是将两个表依据公共列在水平方向上进行拼接,而纵向拼接是在垂直方向上进行拼接
本文所用表格内容如下:
生活用品表:
图书信息表:
先来看一下两个表的数据情形
import pandas as pd
life_df = pd.read_excel(r'C:\Users\admin\Desktop\生活用品表.xlsx')
print(life_df)
result:
分类 编号 名称
0 水果 0 苹果
1 水果 1 橙子
2 生活用品 2 牙刷
3 生活用品 3 冰箱
4 生活用品 4 电视机
5 食物 0 苹果
6 食物 1 橙子
7 家电 3 冰箱
8 家电 4 电视机
9 大件 3 冰箱
10 大件 4 电视机
11 大件 5 茶几
12 生活用品 7 暖手宝宝
13 小说 8 红楼梦
book_df = pd.read_excel(r'C:\Users\admin\Desktop\图书信息表.xlsx')
print(book_df)
result:
分类 编号 名称
0 传记 1 朱元璋传
1 文学 2 沙丘
2 文学 3 平凡的世界
3 历史 4 资治通鉴
4 传记 5 曾国藩传
5 小说 6 世纪三部曲
6 历史 7 三国志
7 小说 8 红楼梦
1.普通合并
普通合并就是直接将待合并列表的表名以列表的形式传给pd.concat()方法即可完成合并。其合并效果展示如下:
import pandas as pd
life_df = pd.read_excel(r'C:\Users\admin\Desktop\生活用品表.xlsx')
book_df = pd.read_excel(r'C:\Users\admin\Desktop\图书信息表.xlsx')
new_df = pd.concat([life_df, book_df])
print(new_df)
result:
分类 编号 名称
0 水果 0 苹果
1 水果 1 橙子
2 生活用品 2 牙刷
3 生活用品 3 冰箱
4 生活用品 4 电视机
5 食物 0 苹果
6 食物 1 橙子
7 家电 3 冰箱
8 家电 4 电视机
9 大件 3 冰箱
10 大件 4 电视机
11 大件 5 茶几
12 生活用品 7 暖手宝宝
13 小说 8 红楼梦
0 传记 1 朱元璋传
1 文学 2 沙丘
2 文学 3 平凡的世界
3 历史 4 资治通鉴
4 传记 5 曾国藩传
5 小说 6 世纪三部曲
6 历史 7 三国志
7 小说 8 红楼梦
2.索引设置
观察普通合并的效果,我们可以发现,普通合并后默认保留原表的索引,合并后的索引编号就会从0到13再从0到7.这时我们可以通过gnore_index=True来设置生成一组新的索引,而不保留原来的索引。效果展示如下:
import pandas as pd
life_df = pd.read_excel(r'C:\Users\admin\Desktop\生活用品表.xlsx')
book_df = pd.read_excel(r'C:\Users\admin\Desktop\图书信息表.xlsx')
new_df = pd.concat([life_df, book_df], ignore_index=True)
print(new_df)
result:
分类 编号 名称
0 水果 0 苹果
1 水果 1 橙子
2 生活用品 2 牙刷
3 生活用品 3 冰箱
4 生活用品 4 电视机
5 食物 0 苹果
6 食物 1 橙子
7 家电 3 冰箱
8 家电 4 电视机
9 大件 3 冰箱
10 大件 4 电视机
11 大件 5 茶几
12 生活用品 7 暖手宝宝
13 小说 8 红楼梦
14 传记 1 朱元璋传
15 文学 2 沙丘
16 文学 3 平凡的世界
17 历史 4 资治通鉴
18 传记 5 曾国藩传
19 小说 6 世纪三部曲
20 历史 7 三国志
21 小说 8 红楼梦
3.重叠数据合并
当合并后的结果有重复记录时,可以使用drop_duplicates()进行去重,其效果展示如下:
import pandas as pd
life_df = pd.read_excel(r'C:\Users\admin\Desktop\生活用品表.xlsx')
book_df = pd.read_excel(r'C:\Users\admin\Desktop\图书信息表.xlsx')
new_df = pd.concat([life_df, book_df], ignore_index=True).drop_duplicates()
print(new_df)
result:
分类 编号 名称
0 水果 0 苹果
1 水果 1 橙子
2 生活用品 2 牙刷
3 生活用品 3 冰箱
4 生活用品 4 电视机
5 食物 0 苹果
6 食物 1 橙子
7 家电 3 冰箱
8 家电 4 电视机
9 大件 3 冰箱
10 大件 4 电视机
11 大件 5 茶几
12 生活用品 7 暖手宝宝
13 小说 8 红楼梦
14 传记 1 朱元璋传
15 文学 2 沙丘
16 文学 3 平凡的世界
17 历史 4 资治通鉴
18 传记 5 曾国藩传
19 小说 6 世纪三部曲
20 历史 7 三国志