pandas的基本用法(七)——合并数据merge
来源:互联网 发布:mac网络实用工具 编辑:程序博客网 时间:2024/06/04 23:18
文章作者:Tyan
博客:noahsnail.com | CSDN | 简书
本文主要是关于pandas的一些基本用法。
#!/usr/bin/env python# _*_ coding: utf-8 _*_import pandas as pdimport numpy as np# Test 1# 定义数据left = pd.DataFrame({'key': ['K0', 'K1', 'K2', 'K3'], 'A': ['A0', 'A1', 'A2', 'A3'], 'B': ['B0', 'B1', 'B2', 'B3']})right = pd.DataFrame({'key': ['K0', 'K1', 'K2', 'K3'], 'C': ['C0', 'C1', 'C2', 'C3'], 'D': ['D0', 'D1', 'D2', 'D3']})print leftprint right# merge合并res = pd.merge(left, right, on = 'key')print res# Test 1 result A B key0 A0 B0 K01 A1 B1 K12 A2 B2 K23 A3 B3 K3 C D key0 C0 D0 K01 C1 D1 K12 C2 D2 K23 C3 D3 K3 A B key C D0 A0 B0 K0 C0 D01 A1 B1 K1 C1 D12 A2 B2 K2 C2 D23 A3 B3 K3 C3 D3# Test 2# 定义数据left = pd.DataFrame({'key1': ['K0', 'K1', 'K2', 'K3'], 'key2': ['K0', 'K1', 'K2', 'K3'], 'A': ['A0', 'A1', 'A2', 'A3'], 'B': ['B0', 'B1', 'B2', 'B3']})right = pd.DataFrame({'key1': ['K0', 'K1', 'K2', 'K3'], 'key2': ['K0', 'K1', 'K2', 'K4'], 'C': ['C0', 'C1', 'C2', 'C3'], 'D': ['D0', 'D1', 'D2', 'D3']})print leftprint right# 合并两列, 默认方法是how=inner, 只合并相同的部分, how的取值可以为['left', 'right', 'outer', 'inner']res = pd.merge(left, right, on = ['key1', 'key2'])print res# Test 2 result A B key1 key20 A0 B0 K0 K01 A1 B1 K1 K12 A2 B2 K2 K23 A3 B3 K3 K3 C D key1 key20 C0 D0 K0 K01 C1 D1 K1 K12 C2 D2 K2 K23 C3 D3 K3 K4 A B key1 key2 C D0 A0 B0 K0 K0 C0 D01 A1 B1 K1 K1 C1 D12 A2 B2 K2 K2 C2 D2# Test 3# 通过indicator表明merge的方式res = pd.merge(left, right, on = ['key1', 'key2'], how = 'outer', indicator = True)print res# 修改indicator的名字res = pd.merge(left, right, on = ['key1', 'key2'], how = 'outer', indicator = 'indicator')print res# Test 3 result A B key1 key2 C D _merge0 A0 B0 K0 K0 C0 D0 both1 A1 B1 K1 K1 C1 D1 both2 A2 B2 K2 K2 C2 D2 both3 A3 B3 K3 K3 NaN NaN left_only4 NaN NaN K3 K4 C3 D3 right_only A B key1 key2 C D indicator0 A0 B0 K0 K0 C0 D0 both1 A1 B1 K1 K1 C1 D1 both2 A2 B2 K2 K2 C2 D2 both3 A3 B3 K3 K3 NaN NaN left_only4 NaN NaN K3 K4 C3 D3 right_only# Test 4# 定义数据left = pd.DataFrame({ 'A': ['A0', 'A1', 'A2', 'A3'], 'B': ['B0', 'B1', 'B2', 'B3']}, index = ['K0', 'K1', 'K2', 'K3'])right = pd.DataFrame({'C': ['C0', 'C1', 'C2', 'C3'], 'D': ['D0', 'D1', 'D2', 'D3']}, index = ['K0', 'K1', 'K2', 'K3'])print leftprint right# merge数据res = pd.merge(left, right, left_index = True, right_index = True, how = 'outer')print res# Test 4 result A BK0 A0 B0K1 A1 B1K2 A2 B2K3 A3 B3 C DK0 C0 D0K1 C1 D1K2 C2 D2K3 C3 D3 A B C DK0 A0 B0 C0 D0K1 A1 B1 C1 D1K2 A2 B2 C2 D2K3 A3 B3 C3 D3# Test 5# 定义数据left = pd.DataFrame({ 'A': ['A0', 'A1', 'A2', 'A3'], 'B': ['B0', 'B1', 'B2', 'B3']})right = pd.DataFrame({'A': ['A0', 'A1', 'A2', 'A3'], 'B': ['D0', 'D1', 'D2', 'D3']})print leftprint right# 区分两个Bres = pd.merge(left, right, on = 'A', how = 'inner', suffixes = ['_left', '_right'])print res# Test 5 result A B0 A0 B01 A1 B12 A2 B23 A3 B3 A B0 A0 D01 A1 D12 A2 D23 A3 D3 A B_left B_right0 A0 B0 D01 A1 B1 D12 A2 B2 D23 A3 B3 D3
0 0
- pandas的基本用法(七)——合并数据merge
- pandas的基本用法(六)——合并数据
- pandas入门——数据合并merge函数
- PANDAS 数据合并 merge/join
- pandas的基本用法(八)——数据的绘制
- pandas的基本用法(二)——选择数据
- Pandas的基本用法(三)——设置数据
- pandas的基本用法(四)——处理缺失数据
- pandas的基本用法(五)——导入导出数据
- pandas的基本用法(一)——数据定义及使用
- python科学计算笔记(十三)pandas的merge、concat合并数据集
- 【pandas】[3] DataFrame 数据合并,连接(merge,join,concat)
- PANDAS 数据合并与重塑(join/merge篇)
- PANDAS 数据合并与重塑(join/merge篇)
- PANDAS 数据合并与重塑(concat join/merge)
- PANDAS 数据合并与重塑(join/merge篇)
- pandas数据合并与重塑---join、merge方法
- PANDAS 数据合并与重塑(join/merge篇)
- JSP —— Servlet 单实例多线程模式
- 图像处理书籍推荐
- 练习
- yoloV2配置的注意点
- CSU-1643-+1+2?
- pandas的基本用法(七)——合并数据merge
- 简易的用户账号注册和登录验证程序(1)
- CocoaPods报错:The dependency `AFNetworking ` is not used in any concrete target
- 混日子不是你的错,根源在这里
- JavaScript关于作用域、作用域链和闭包的理解
- Js-获取当前页面的url参数值
- 秒杀多线程第二篇 多线程第一次亲密接触 CreateThread与_beginthreadex本质区别
- vmware虚拟机桥接主机的网络设置
- zoj 3963