>>> frame2
addr age name
0 beijing 12 zhang
1 shanghai 24 li
2 hangzhou 24 cao
>>> frame1
addr name
0 beijing zhang
1 shanghai li
2 hangzhou cao
3 shenzhen han
>>> pd.merge(frame1,frame2) 以name列为连接进行拼接
addr name age
0 beijing zhang 12
1 shanghai li 24
2 hangzhou cao 24
>>> pd.merge(frame1,frame2,on='name') 指定 列 和拼接方式
addr_x name addr_y age
0 beijing zhang beijing 12
1 shanghai li shanghai 24
2 hangzhou cao hangzhou 24
>>> pd.merge(frame1,frame2,on='name',how='outer')
addr_x name addr_y age
0 beijing zhang beijing 12.0
1 shanghai li shanghai 24.0
2 hangzhou cao hangzhou 24.0
3 shenzhen han NaN NaN
>>> pd.merge(frame1,frame2,on='name',how='inner')
addr_x name addr_y age
0 beijing zhang beijing 12
1 shanghai li shanghai 24
2 hangzhou cao hangzhou 24
>>> pd.merge(frame1,frame2,on='name',how='left')
addr_x name addr_y age
0 beijing zhang beijing 12.0
1 shanghai li shanghai 24.0
2 hangzhou cao hangzhou 24.0
3 shenzhen han NaN NaN
>>> pd.merge(frame1,frame2,on='name',how='right')
addr_x name addr_y age
0 beijing zhang beijing 12
1 shanghai li shanghai 24
2 hangzhou cao hangzhou 24
>>> pd.merge(frame1,frame2,on='name',left_index=True)
addr_x name addr_y age
0 beijing zhang beijing 12
1 shanghai li shanghai 24
2 hangzhou cao hangzhou 24
>>> pd.merge(frame1,frame2,on='name',right_index=True)
addr_x name addr_y age
0 beijing zhang beijing 12
1 shanghai li shanghai 24
2 hangzhou cao hangzhou 24
>>> pd.merge(frame1,frame2,on='addr',right_index=True)
addr name_x age name_y
0 beijing zhang 12 zhang
1 shanghai li 24 li
2 hangzhou cao 24 cao
 >>> frame1.columns=['addr1','name1']
>>> frame1.join(frame2)
addr1 name1 addr age name 修改掉重复的列名称,然后join()
0 beijing zhang beijing 12.0 zhang
1 shanghai li shanghai 24.0 li
2 hangzhou cao hangzhou 24.0 cao
3 shenzhen han NaN NaN NaN
 >>> array1
array([[0, 1, 2],
[3, 4, 5],
[6, 7, 8]])
>>> array1=np.arange(9).reshape((3,3))+6
>>> array2=np.arange(9).reshape((3,3))
>>> array1
array([[ 6, 7, 8],
[ 9, 10, 11],
[12, 13, 14]])
>>> np.concatenate([array1,array2],axis=1) np模块中对元组进行concatenate()
array([[ 6, 7, 8, 0, 1, 2],
[ 9, 10, 11, 3, 4, 5],
[12, 13, 14, 6, 7, 8]])
>>> np.concatenate([array1,array2],axis=0)
array([[ 6, 7, 8],
[ 9, 10, 11],
[12, 13, 14],
[ 0, 1, 2],
[ 3, 4, 5],
[ 6, 7, 8]])
>>>
>>> np.concatenate([array1,array2])
array([[ 6, 7, 8],
[ 9, 10, 11],
[12, 13, 14],
[ 0, 1, 2],
[ 3, 4, 5],
[ 6, 7, 8]])
 >>> ser1=pd.Series(np.random.rand(4))   pd模块中也有concat()
>>> ser1
0 0.998915
1 0.117503
2 0.747180
3 0.641508
dtype: float64
>>> ser1=pd.Series(np.random.rand(4)*100)
>>> ser1
0 8.818592
1 42.317816
2 43.274021
3 23.245148
dtype: float64
>>> ser2=pd.Series(np.random.rand(4)*100,index=[5,6,7,8])
>>> ser2
5 58.416554
6 11.840838
7 38.146851
8 0.135517
dtype: float64
>>> pd.concat([ser1,ser2])
0 8.818592
1 42.317816
2 43.274021
3 23.245148
5 58.416554
6 11.840838
7 38.146851
8 0.135517
dtype: float64
>>> pd.concat([ser1,ser2],axis=1)
0 1
0 8.818592 NaN
1 42.317816 NaN
2 43.274021 NaN
3 23.245148 NaN
5 NaN 58.416554
6 NaN 11.840838
7 NaN 38.146851
8 NaN 0.135517
 >> pd.concat([ser1,ser2],axis=1,keys=[1,2])
1 2
0 8.818592 NaN
1 42.317816 79.632793
2 43.274021 96.700070
3 23.245148 64.573269
4 NaN 68.629709
>>> ser2.index=[2,4,5,6]
>>> ser2
2 79.632793
4 96.700070
5 64.573269
6 68.629709
dtype: float64
>>> ser1.combine_first(ser2) 对缺额的数据进行填充 combin_first()
0 8.818592
1 42.317816
2 43.274021
3 23.245148
4 96.700070
5 64.573269
6 68.629709
dtype: float64
 >>> ser1
0 a
1 b
2 c
3 d
dtype: object
>>> ser2
2 0
4 1
5 2
6 3
dtype: int32
>>> ser2.combine_first(ser1) ser1在后
0 a
1 b
2 0
3 d
4 1
5 2
6 3
dtype: object
>>> ser1[:2].combine_first(ser2) ser1在前
0 a
1 b
2 0
4 1
5 2
6 3
dtype: object
 >>> frame1=pd.DataFrame({'name':['zhang','li','wang'],'age':[12,45,34],'addr':['beijing','shanghai','shenzhen']})
>>> frame1
addr age name
0 beijing 12 zhang
1 shanghai 45 li
2 shenzhen 34 wang
>>> frame1.stack() frame的进栈和出栈
0 addr beijing
age 12
name zhang
1 addr shanghai
age 45
name li
2 addr shenzhen
age 34
name wang
dtype: object
>>> frame1.stack().unstack()
addr age name
0 beijing 12 zhang
1 shanghai 45 li
2 shenzhen 34 wang
>>> frame1.stack().unstack(0) 列和索引转换
0 1 2
addr beijing shanghai shenzhen
age 12 45 34
name zhang li wang
 >>> longframe=pd.DataFrame({'color':['white','white','white','red','red','red','black','black','black'],'item':['ball','pen','mug','ball','pen','mug','ball','pen','mug'],'value':np.random.rand(9)})
>>> longframe
color item value 对冗余的消除,将longframe转换为wideframe
0 white ball 0.260358
1 white pen 0.543955
2 white mug 0.456874
3 red ball 0.967021
4 red pen 0.657271
5 red mug 0.984256
6 black ball 0.550236
7 black pen 0.731625
8 black mug 0.006728
>>> wideframe=longframe.pivot('color','item')
>>> wideframe
value
item ball mug pen
color
black 0.550236 0.006728 0.731625
red 0.967021 0.984256 0.657271
white 0.260358 0.456874 0.543955
>>> frame1
addr age name
0 beijing 12 zhang
1 shanghai 12 li
2 beijing 12 wang
>>> del frame['addr']
Traceback (most recent call last):
File "<pyshell#103>", line 1, in <module>
del frame['addr']
NameError: name 'frame' is not defined
>>> del frame1['addr']
>>> frame1
age name
0 12 zhang
1 12 li
2 12 wang

panda库------对数据进行操作---合并,转换,拼接的更多相关文章

  1. mysql数据表操作&库操作

    首先登陆mysql:mysql -uroot -proot -P3306 -h127.0.0.1 查看所有的库:show databases; 进入一个库:use database; 显示所在的库:s ...

  2. MySQL数据库(2)- 库的操作、表的操作、数据的操作、存储引擎的介绍

    一.库的操作 1.系统数据库 执行如下命令,查看系统数据库: mysql> show databases; 参数解释: information_schema: 虚拟库,不占用磁盘空间,存储的是数 ...

  3. SSIS从理论到实战,再到应用(7)----常用的数据类型转换操作

    原文:SSIS从理论到实战,再到应用(7)----常用的数据类型转换操作 上期回顾: SSIS从理论到实战,再到应用(6)----SSIS的自带日志功能 在抽取各种应用的数据时候,经常会遇到数据需要转 ...

  4. 使用SQLServer同义词和SQL邮件,解决发布订阅中订阅库丢失数据的问题

    最近给客户做了基于SQLServer的发布订阅的“读写分离”功能,但是某些表数据很大,经常发生某几条数据丢失的问题,导致订阅无法继续进行.但是每次发现问题重新做一次发布订阅又非常消耗时间,所以还得根据 ...

  5. JAVASE02-Unit08: 文本数据IO操作 、 异常处理

    Unit08: 文本数据IO操作 . 异常处理 * java.io.ObjectOutputStream * 对象输出流,作用是进行对象序列化 package day08; import java.i ...

  6. MySQL的数据库,数据表,数据的操作

    数据库简介 概念 什么是数据库?简单来说,数据库就是存储数据的"仓库", 但是,光有数据还不行,还要管理数据的工具,我们称之为数据库管理系统! 数据库系统 = 数据库管理系统 + ...

  7. SQL Server 跨库同步数据

    最近有个需求是要跨库进行数据同步,两个数据库分布在两台物理计算机上,自动定期同步可以通过SQL Server代理作业来实现,但是前提是需要编写一个存储过程来实现同步逻辑处理.这里的存储过程用的不是op ...

  8. 让复杂Json数据和对象自由转换 --- Gson

    Gson是谷歌用于对Json操作的库,里面有着强大而又方便的功能,最常用的就是 fromJson():将json数据转化为对象: toJson():将对象转化为json数据! 对于普通的json数据使 ...

  9. HealthKit开发快速入门教程之HealthKit数据的操作

    HealthKit开发快速入门教程之HealthKit数据的操作 数据的表示 在HealthKit中,数据是最核心的元素.通过分析数据,人们可以看到相关的健康信息.例如,通过统计步数数据,人们可以知道 ...

随机推荐

  1. Windows MDI(Multiple-Document Interface)

    Windows多文档窗口编程中,需要注意的以下几点: 1.主窗口与文档窗口之间还有一个Client Window. 2.创建文档窗口.通常认为创建子窗口就用CreateWindow,但是MDI中创建文 ...

  2. linux 系统状态分析

    查看操作系统类型---返回结果Linux 适合与字符比较 cat /proc/sys/kernel/ostype cat /proc/version shell : www.jb51.net/arti ...

  3. Linux企业运维人员最常用150个命令汇总

    命令 功能说明 线上查询及帮助命令(2个) man 查看命令帮助,命令的词典,更复杂的还有info,但不常用. help 查看Linux内置命令的帮助,比如cd命令. 文件和目录操作命令(18个) l ...

  4. ASP.NET 给Web中的网页添加Loading进度条形式

    前段时间客户提了一个需求,要求给网站中某些功能添加进度条形式,因为某些功能查询的数据量太大,经常会出现点击Search按钮,但是没有任何反应的情况,会让用户以为网站挂掉了,导致投诉的事情发生,所以客户 ...

  5. 10分钟学会ES7+ES8

    撰文为何 身为一个前端开发者,ECMAScript(以下简称ES)早已广泛应用在我们的工作当中.了解ECMA机构流程的人应该知道,标准委员会会在每年的6月份正式发布一次规范的修订,而这次的发布也将作为 ...

  6. 初学者入门web前端 C#基础知识:数组与集合

    对于初学者,想要入门web前端,要有足够的信念和坚持,不然只会越走越远,我现在就深深的体会到. 我本是一个很拒绝代码的人,以前想过UI设计,但是在这段学习时间里,发现其实只要认真,代码并不是很难 所以 ...

  7. 日志log4j配置详情,日志log具体到你想不到

    一.Log4j简介Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局). 1.LoggersLoggers组件在此系统中被分为五个级别:DEBU ...

  8. oracle12c之 单机12.1.0.1打补丁

    1. 下载最新的12.1.0.1的DB PSU 与 OPatchp23054354_121010_Linux-x86-64.zipp6880880_121010_Linux-x86-64.zip 2. ...

  9. hdu 3342 拓扑排序 水

    好久没切题  先上水题! 拓扑排序! 代码: #include<iostream> #include<cstdio> #include<cstring> using ...

  10. JavaScript学习日志(四):BOM

    BOM的核心对象就是window,这一章没什么好说的,总结一些比较常用的: 1,a未定义,a; //报错window.a; //undefined 不能用delete删除全局变量 2,html5不支持 ...