Pandas 合并数据集
来源:互联网 发布:软件页面设计规范 编辑:程序博客网 时间:2024/06/06 05:33
转载出处:http://blog.csdn.net/u010414589/article/details/51135840
在数据挖掘过程中,经常会有不同表格的数据需要进行合并操作。今天介绍通过Python下的pandas库下的merge方法和concat方法来实现数据集的合并。
1.merge
merge 函数通过一个或多个键来将数据集的行连接起来。该函数的主要 应用场景是针对同一个主键存在两张包含不同特征的表,通过该主键的连接,将两张表进行合并。合并之后,两张表的行数没有增加,列数是两张表的列数之和减一。
函数的具体参数为:
- 1
- 2
- 1
- 2
- on=None 指定连接的列名,若两列希望连接的列名不一样,可以通过left_on和right_on 来具体指定
- how=’inner’,参数指的是左右两个表主键那一列中存在不重合的行时,取结果的方式:inner表示交集,outer 表示并集,left 和right 表示取某一边。
举例如下
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 1
- 2
- 3
- 4
- 5
- 6
- 7
在这里我分别设置了两个DataFrame类别的变量df1,df2,(平常我们用的表csv文件,读取之后也是DataFrame 格式)。然后我设置 on=’x1’,即以两个表中的x1为主键进行连接,设置how=’left’ ,即是以两个表中merge函数中左边那个表的行为准,保持左边表行数不变,拿右边的表与之合并。结果如下:
第一个结果为how=’left’的情况。第二个结果为how=’inner’的情况。
注意:在how=’left’设置后,左边行之所以能够保持不变,是因为右边的表主键列没有重复的值,x下面我会举个例子作为思考题:
这是两张表,分别为df1,df2;
第一个问题:
在默认情况下即merge(df1,df2)其他参数为默认值的返回结果是 什么?
第二个问题:
在加上how=’left’之后的返回结果是什么?
看完了问题之后,返回去看这两张表,不着急看答案,仔细想想。
这两个问题明白之后,表之间的连接和映射应该都能够明白了。
2.concat
concat 与其说是连接,更准确的说是拼接。就是把两个表直接合在一起。于是有一个突出的问题,是横向拼接还是纵向拼接,所以concat 函数的关键参数是axis 。
函数的具体参数是:
- 1
- 1
- objs 是需要拼接的对象集合,一般为列表或者字典
- axis=0 是行拼接,拼接之后行数增加,列数也根据join来定,join=’outer’时,列数是两表并集。同理join=’inner’,列数是两表交集。
在默认情况下,axis=0为纵向拼接,此时有
- 1
- 1
在axis=1 时为横向拼接 ,此时有
- 1
- 1
举个例子
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- Pandas 合并数据集
- Pandas 合并数据集
- Pandas 合并数据
- pandas数据合并
- Pandas 合并数据
- pandas数据合并
- pandas数据加载与合并
- PANDAS 数据合并 merge/join
- pandas数据重塑与合并
- pandas小记:pandas数据规整化-分组合并及重塑
- Python pandas数据库风格的数据合并
- pandas数据合并与重塑---concat方法
- pandas进行数据的交集与并集方式的数据合并
- python科学计算笔记(十三)pandas的merge、concat合并数据集
- 利用 Python 进行数据分析(十二)pandas:数据合并
- 利用 Python 进行数据分析(十二)pandas:数据合并
- 利用Python进行数据分析(12) pandas基础: 数据合并
- 【pandas】[3] DataFrame 数据合并,连接(merge,join,concat)
- JDBC之数据库连接池和SQL注入攻击
- String方法遇到的坑
- Linux 下javaweb 配置
- 避免在指针的容器上使用类似remove的算法造成的内存泄漏
- URL参数对称加密---PHP语言版本
- Pandas 合并数据集
- 2016年个人工作总结、生活总结 和 2017年个人工作计划、生活计划
- 在ASHX中使用GZip压缩输出的文字流
- Android View坐标getLeft, getRight, getTop, getBottom解惑
- 移动平台对 meta 标签的定义
- neutron(2)
- 阅读图像显著性检测论文四:Saliency Filters Contrast Based Filtering for Salient Region Detection
- 我的go语言学习之旅----序
- NDK/SDK/JNI