目录

第二章(pandas)

Python数据处理从零开始----第二章(pandas)④数据合并和处理重复值

===============================================

数据合并

在数据处理中,通常将原始数据分开几个部分进行处理而得到相似结构的Series或DataFrame对象,我们该如何进行纵向合并它们?这时我们可以选择用pd.concat()方式极易连接两个或两个以上的Series或DataFrame对象。如下是该函数的参数解读:

pd.concat(objs, axis=0, join=’outer’, join_axes=None, ignore_index=False, keys=None, levels=None, names=None, verify_integrity=False, copy=True)

参数说明:

objs:连接对象,多以列表、字典传入

axis:轴向,0代表纵向连接,1,代表横向连接

join:连接方式,共有’inner’,’left’,right’,’outer’

join_axes:参与连接的索引

ignore_index:是否忽略索引

keys:层次化索引

横向连接

import pandas as pd

s1=pd.Series([1,2,3],index=list('abc'))

s2=pd.Series([3,4,5],index=list('bde'))

pd.concat([s1,s2])

Out[6]:

a 1

b 2

c 3

b 3

d 4

e 5

dtype: int64

纵向连接

pd.concat([s1,s2],axis=1)

__main__:1: FutureWarning: Sorting because non-concatenation axis is not aligned. A future version

of pandas will change to not sort by default.

To accept the future behavior, pass 'sort=False'.

To retain the current behavior and silence the warning, pass 'sort=True'.

Out[7]:

0 1

a 1.0 NaN

b 2.0 3.0

c 3.0 NaN

d NaN 4.0

e NaN 5.0

内连接

pd.concat([s1,s2],axis=1,join='inner')

Out[8]:

0 1

b 2 3

import pandas as pd

from pandas import Series,DataFrame

dict1={

'key':['a','b','c'],

'col1':range(3)

}

df1 = DataFrame(dict1)

df1

Out[18]:

key col1

0 a 0

1 b 1

2 c 2

dict2={

'key':['b','c','d'],

'col2':range(1,4)

}

df2 =DataFrame(dict2)

df2

Out[19]:

key col2

0 b 1

1 c 2

2 d 3

dat = pd.merge(df1,df2)

dat

Out[14]:

key col1 col2

0 b 1 1

1 c 2 2

pandas默认寻找共同的column,然后合并共同的观测值,但是可以根据,on='',和how=''来控制连接的键和合并的方式。

移除重复数据

首先创建一个数据框

# -*- coding: utf-8 -*-

"""

Created on Thu Nov 29 01:33:46 2018

@author: czh

"""

%clear

%reset -f

# In[*]

import seaborn as sns

import matplotlib.pyplot as plt

%matplotlib inline

import os

import numpy as np

import pandas as pd

# In[*]

data = pd.DataFrame({'k1': ['one', 'two'] * 3 + ['two'],

'k2': [1, 1, 2, 3, 3, 4, 4]})

data

data.duplicated()

0 False

1 False

2 False

3 False

4 False

5 False

6 True

dtype: bool

通过以上我们发现最后一行(第七行)存在一个完全重复的行,一般情况下,我们需要删除掉这行,主要通过drop_duplicates()函数,该函数返回的结果是一个数据框。

data.drop_duplicates()

Out[9]:

k1 k2

0 one 1

1 two 1

2 one 2

3 two 3

4 one 3

5 two 4

这两个方法默认会判断全部列,你也可以指定部分列进行重复项判断(一般情况下,我们希望去掉某一列重复的观测值),假设我们还有一列值,且只希望根据k1列过滤重复项:

data['v1'] = range(7)

data

data.drop_duplicates(['k1'])

Out[10]:

k1 k2 v1

0 one 1 0

1 two 1 1

python concat去除重复值语句_Python数据处理从零开始----第二章(pandas)④数据合并和处理重复值...相关推荐

  1. python科赫曲线绘制正方形_Python数据处理从零开始----第四章(可视化)(14)使用seaborn绘制热图...

    目录 Python数据处理从零开始----第四章(可视化)①③多变量绘图 Python数据处理从零开始----第四章(可视化)(14)使用seaborn绘制热图 seaborn.heatmapHeat ...

  2. python绘制函数曲线x2sin(x2-x-2)_Python数据处理从零开始----第四章(可视化)(2)图形和轴...

    正文 导入包 当我们需要对数据进行可视化时,我们遇到的可能最简单的是单个函数的可视化y = f(x)y = f(x). 在这里,我们将首先看一下这种类型的简单绘图.第一步先导入包:% reset -f ...

  3. 【Python】图解Pandas数据合并:concat、join、append

    公众号:尤而小屋 作者:Peter 编辑:Peter 图解pandas数据合并:concat+join+append 在上一篇文章中介绍过pandas中最为常用的一个合并函数merge的使用,本文中介 ...

  4. PANDAS 数据合并与重塑(concat篇) 原创 2016年09月13日 19:26:30 47784 pandas作者Wes McKinney 在【PYTHON FOR DATA ANALYS

    PANDAS 数据合并与重塑(concat篇) 原创 2016年09月13日 19:26:30 标签: 47784 编辑 删除 pandas作者Wes McKinney 在[PYTHON FOR DA ...

  5. pandas数据合并:concat、join、append

    公众号:尤而小屋 作者:Peter 编辑:Peter 大家好,我是Peter~ 图解pandas数据合并:concat+join+append 在上一篇文章中介绍过pandas中最为常用的一个合并函数 ...

  6. 【python数据分析】pandas数据合并

    pandas数据合并 使用contact,append,merge完成数据集合并 自己学习用,欢迎大佬指正. 1.concat pd.concat()可以合并series和DataFrame对象,默认 ...

  7. 《Python网络爬虫——从入门到实践》第六章将数据存储至MySQL数据库的学习心得与总结(出错与纠正方法)

    <Python网络爬虫--从入门到实践>第六章将数据存储至MySQL数据库的学习心得与总结(出错与纠正方法) 作为刚开始入门python的小白,对大数据,网络爬虫比较感兴趣.完全是自我修炼 ...

  8. python concat去除重复值语句_Python DataFrame使用drop_duplicates()函数去重(保留重复值,取重复值)...

    摘要 在进行数据分析时,我们经常需要对DataFrame去重,但有时候也会需要只保留重复值. 这里就简单的介绍一下对于DataFrame去重和取重复值的操作. 创建DataFrame 这里首先创建一个 ...

  9. python avg函数在哪个模块_python数据处理工具–Pandas模块

    健壮的数据处理模块Pandas,能够处理数据的预处理作业,如数据类型的转化.缺失值的处理.描绘性核算分析和数据的汇总等 一.序列与数据框的结构 Pandas模块的中心操作政策为序列和数据框.序列指数据 ...

最新文章

  1. 收藏!全国31个省市区重点产业布局!
  2. SpringBoot------全局异常捕获和自定义异常
  3. linux禁用锁定和解除解锁用户账号的方法
  4. 7.1.2 定义改进的Sales_date类
  5. 制作程序化装饰花纹图案_装饰图案
  6. C#调用SQL中的存储过程中有output参数,存储过程执行过程中返回信息
  7. 码农节快乐|一个系统,高效解决复杂事件采集-计算-实时触达
  8. calender获取日期前几月_java获取当前时间和前一天日期(实现代码)
  9. mybatis-generator配置流程(详细) 2021-05-15
  10. 如何打造一个让粉丝一见就能收钱的朋友圈
  11. 数据结构基础--线性表
  12. 交叉熵和极大似然估计的再理解
  13. 预备作业03 20162311张之睿
  14. win7电脑桌面便签哪个好用
  15. IPD不仅是流程更是管理体系(附华为IPD培训资料)
  16. 联想Y400 拆光驱加装固态硬盘
  17. rust潘通色_[转载]PANTONE(潘通色卡)TPX/TCX色号颜色查询--以后不用愁啦!!!...
  18. Java 未来行情到底如何,来看看各界人士是怎么说的
  19. 中国红党员读书分享学习交流会PPT模板
  20. 1147601-11-3,2-Azidoethan-1-amine hydrobromide是连接物

热门文章

  1. pcie 的function_PCIe扫盲——BDF与配置空间
  2. android模块化 osgi,蚂蚁金融级移动应用 osgi 模块化架构实践.pdf
  3. Workbox.strategies v3.x 中文版
  4. python文件头--文件编码指定
  5. 运行shell:windows命令,及显示桌面.scf的问题
  6. 图文:详解数据库Oracle 11g的基本安装
  7. ie浏览器跨域报错问题;Access-Control-Allow-Headers 列表不存在请求表头 content-type;XMLHTTPRequest:网络错误 0x80070005,拒绝访问。
  8. Eclipse: select at least one project
  9. 函数 devm_kzalloc()
  10. React开发(171):处理删除与批量删除操作