文 | 清香客
来源:Python 技术「ID: pythonall」
大家好,我是派森酱。
上次介绍了pandas
的两表连接merge
技能,有的酱友留言说那么点数据用excel
就挺快,在这里说明一下,文章内容只是用部分代码来介绍功能的用法和最后的结果显示,不是真的用几个G的文件来展示,也展示不过来的。
熟悉了功能怎么用,就可以用自己的数据来操作了。
merge
可以匹配两表的内容,但是merge
只能连接两个表,不能多表连接,这次说说能用于多表连接的功能concat
。
还是用上次的数据,这次多加了一个DataFrame,用于显示结果。
- python
- import pandas as pd
-
- df1 = pd.DataFrame({
- '姓名': ['张三', '李四', '王五', '刘六', '齐四'],
- '号码': ['123', '456', '789', '987', '654']
- })
-
- df2 = pd.DataFrame({
- '姓名': ['张三', '张三', '张三', '李四', '李四', '李四', '李四', '王五', '王五', '刘玉', '胡军', '刘玉', '刘六', '刘六', '刘六', '刘六', '刘克', '刘玉', '齐七', '齐七', '齐七', '齐七', '冯亮', '刘玉', '王云'],
-
- '号码': ['123', '456', '789', '123', '123', '456', '456', '456', '456', '456', '741', '741', '741', '741', '741', '789', '789', '789', '789', '789', '852', '852', '852', '852', '852'],
-
- '日期': ['2022-03-13', '2022-03-06', '2022-01-30', '2022-01-04', '2022-02-26', '2022-03-26', '2022-03-06', '2022-01-30', '2022-01-29', '2022-03-13', '2022-03-06', '2022-02-19', '2022-02-04', '2022-03-10', '2022-04-19', '2022-03-10', '2022-01-29', '2022-02-19', '2022-03-06', '2022-03-26', '2022-01-04', '2022-02-04', '2022-04-19', '2022-02-26', '2022-03-06'],
-
- '方案': ['G1012', 'G1022', 'G1002', 'G1007', 'G1017', 'G1023', 'G1018', 'G1003', 'G1008', 'G1013', 'G1020', 'G1015', 'G1010', 'G1005', 'G1025', 'G1004', 'G1009', 'G1014', 'G1019', 'G1024', 'G1006', 'G1011', 'G1026', 'G1016', 'G1021']
- })
-
- df3 = pd.DataFrame({
- '姓名': ['张三', '李四', '王五', '刘六', '齐四'],
- '号码': ['123', '456', '789', '987', '654'],
- '年龄': ['25', '36', '41', '12', '54']
- })
concat
是一个轴向连接的功能,可以沿着一条轴将多个表对象堆叠到一起:how
的模式是outer
axis=0
是上下拼接,列重复的会自动合并,axis=1
是左右拼接,行或索引重复的会自动合并
df = pd.concat([df1, df2], axis=0)
输出:
两个表的重复列名自动合并了,缺失的值为
NaN
df = pd.concat([df1, df2, df3], axis=0)
输出:
同时增加了另一个表的内容和增加了一列,缺失值同样为
NaN
df = pd.concat([df1, df2, df3], axis=1)
输出:
这次是在右边拼接的,行是按内容行最多的来算,其它的内容为空,列一直在增加,是把三个表的列都拼接上了。
merge
和concat
的表连接,都有各自的特点,我们需要按自己所需要的结果去用,想匹配内容的,就用merge
,想全部连接到一起的,就用concat
。
PS:公号内回复「Python」即可进入Python 新手学习交流群,一起 100 天计划!
老规矩,酱友们还记得么,右下角的 “在看” 点一下,如果感觉文章内容不错的话,记得分享朋友圈让更多的人知道!
【代码获取方式】
识别文末二维码,回复:清香客