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

  1. sdf={'rkey':[1,2,3,2],'name':['rkey1','rkey2','rkey3','rkey4']}
    sdf2={'lkey':[1,2,3],'name':['lsdf1','lsdf2','lsdf3']}
    sdf3={'lkey':[11,2,3],'name':['lsdf3','lsdf3','lsdf3']}
    cc=DataFrame(sdf)
    cc2=DataFrame(sdf2)
    cc3=DataFrame(sdf3)
    print cc.merge(cc2,left_on='rkey',right_on='lkey')
    name_x rkey lkey name_y

0 rkey1 1 1 lsdf1
1 rkey2 2 2 lsdf2
2 rkey4 2 2 lsdf2
3 rkey3 3 3 lsdf3

  1. print cc2.merge(cc3,on='lkey')

lkey name_x name_y
0 2 lsdf2 lsdf3
1 3 lsdf3 lsdf3

  1. # 指定附加在重名列上的字符串
    print cc2.merge(cc3,on='lkey',suffixes=('_left','_right'))

lkey name_left name_right
0 2 lsdf2 lsdf3
1 3 lsdf3 lsdf3

======通过索引和列进行合并=====================

  1. sdf2={'tst':[1,2,3],'name':['lsdf2','lsdf22','lsdf32']}
    sdf3={'lkey':[11,2,3],'name':['lsdf3','lsdf23','lsdf33']}
    cc2=DataFrame(sdf2,index=[1,2,3])
    cc3=DataFrame(sdf3)
  1. print cc2.merge(cc3,left_index=True,right_on='lkey')

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

  1. sdf=Series([11,22,33])
    sdf2=Series([44,55,66])
    print pd.concat([sdf,sdf2])

  1. print pd.concat([sdf,sdf2],axis=1)

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

  1. sdf2={'tst2':[1,2,3],'name':['lsdf2','lsdf22','lsdf32']}
    sdf3={'tst3':[11,2,3],'name':['lsdf3','lsdf23','lsdf33']}
    cc2=DataFrame(sdf2,index=['b','c','d'])
    cc3=DataFrame(sdf3,index=['a','b','c'])
    print pd.concat([cc2,cc3])

  1. print pd.concat([cc2,cc3],axis=1)

===========

  1. print pd.concat([cc2,cc3],axis=1,join='inner')

  1. print pd.concat([cc2,cc3],join='inner')

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

  1. sdf2={'tst':[1,2,3],'name':['lsdf2','lsdf22','lsdf32']}
    sdf3={'tst':[11,2,3],'name':['lsdf3','lsdf23','lsdf33']}
    cc2=DataFrame(sdf2,index=['b','c','d'])
    cc3=DataFrame(sdf3,index=['a','b','c'])
  1. print pd.concat([cc2,cc3],ignore_index=True)

=========用参数对象中的数据为调用者对象的缺失数据打补丁==========

  1. sdf2={'tst':[11,np.nan,33],'name':[np.nan,'lsdf22','lsdf22']}
    sdf3={'tst':[1,2,3],'name':['lsdf3','lsdf23','lsdf33']}
    cc2=DataFrame(sdf2,index=['b','c','d'])
    cc3=DataFrame(sdf3,index=['a','b','c'])
  1. print cc2.combine_first(cc3)

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

  1. sdf3={'tst':[1,2,3],'name':['lsdf3','lsdf23','lsdf33']}
    cc3=DataFrame(sdf3,index=['a','b','c'])
    # 指定附加在重名列上的字符串
    print cc3.replace(3,100) #替换一个值

  1. print cc3.replace([1,3],100) #替换多个值

  1. print cc3.replace({1:100,3:300}) #不同值进行不同替换

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

  1. df=pd.DataFrame({'name':['aa','bb','cc'],'age':[,,]})
  2. ss=df['age']
  3. print ss
  4.  
  5. Name: age, dtype: int64

索引ss的某一个值:ss[0]

索引ss的某几个值:ss[[0,1]]

切片:ss[1:]

==========

  1. s6=pd.Series(np.array([,,,,,]),index=['a','b','c','d','e','f'])
  2. s7=pd.Series(np.array([,,,,,]),index=['a','c','g','b','d','f'])
  3. #s6中不存在g索引,s7中不存在e索引,所以数据运算会产生两个缺失值NaN。
  4. print(s6+s7)
  5. dtype: int32
  6. a 22.0
  7. b 30.0
  8. c 31.0
  9. d 44.0
  10. e NaN
  11. f 96.0
  12. g NaN
  13. #可以注意到这里的算术运算自动实现了两个序列的自动对齐
  14. #对于数据框的对齐,不仅是行索引的自动对齐,同时也会对列索引进行自动对齐,数据框相当于二维数组的推广
  15. print(s6/s7)
  16. dtype: float64
  17. a 0.833333
  18. b 1.000000
  19. c 1.818182
  20. d 2.142857
  21. e NaN
  22. f 5.000000
  23. g NaN
  24. dtype: float64

获取DataFrame的多行:test_data.iloc[[0,2,4,5,7]]

按某一列的值进行过滤:test_data[test_data['age']==51]

对多列进行过滤:test_data[(test_data['age']==51) & (test_data['job']>=5)]   ---圆括号括起来+ &

过滤完后,只留下某几列:test_data[(test_data['age']==51) & (test_data['job']>=5)][['education','housing','loan','contact','poutcome']]

查询指定的行:test_data.loc[[0,2,4,5,7]]

查询指定的列:test_data[['age','job','marital']]

查询指定的行和列:test_data.loc[[0,2,4,5,7],['age','job','marital']]

  1.  
  1.  
  1.  
  1.  
  1.  
  1.  

pandas 2的更多相关文章

  1. pandas基础-Python3

    未完 for examples: example 1: # Code based on Python 3.x # _*_ coding: utf-8 _*_ # __Author: "LEM ...

  2. 10 Minutes to pandas

    摘要   一.创建对象 二.查看数据 三.选择和设置 四.缺失值处理 五.相关操作 六.聚合 七.重排(Reshaping) 八.时间序列 九.Categorical类型   十.画图      十一 ...

  3. 利用Python进行数据分析(15) pandas基础: 字符串操作

      字符串对象方法 split()方法拆分字符串: strip()方法去掉空白符和换行符: split()结合strip()使用: "+"符号可以将多个字符串连接起来: join( ...

  4. 利用Python进行数据分析(10) pandas基础: 处理缺失数据

      数据不完整在数据分析的过程中很常见. pandas使用浮点值NaN表示浮点和非浮点数组里的缺失数据. pandas使用isnull()和notnull()函数来判断缺失情况. 对于缺失数据一般处理 ...

  5. 利用Python进行数据分析(12) pandas基础: 数据合并

    pandas 提供了三种主要方法可以对数据进行合并: pandas.merge()方法:数据库风格的合并: pandas.concat()方法:轴向连接,即沿着一条轴将多个对象堆叠到一起: 实例方法c ...

  6. 利用Python进行数据分析(9) pandas基础: 汇总统计和计算

    pandas 对象拥有一些常用的数学和统计方法.   例如,sum() 方法,进行列小计:   sum() 方法传入 axis=1 指定为横向汇总,即行小计:   idxmax() 获取最大值对应的索 ...

  7. 利用Python进行数据分析(8) pandas基础: Series和DataFrame的基本操作

    一.reindex() 方法:重新索引 针对 Series   重新索引指的是根据index参数重新进行排序. 如果传入的索引值在数据里不存在,则不会报错,而是添加缺失值的新行. 不想用缺失值,可以用 ...

  8. 利用Python进行数据分析(7) pandas基础: Series和DataFrame的简单介绍

    一.pandas 是什么 pandas 是基于 NumPy 的一个 Python 数据分析包,主要目的是为了数据分析.它提供了大量高级的数据结构和对数据处理的方法. pandas 有两个主要的数据结构 ...

  9. pandas.DataFrame对行和列求和及添加新行和列

    导入模块: from pandas import DataFrame import pandas as pd import numpy as np 生成DataFrame数据 df = DataFra ...

  10. pandas.DataFrame排除特定行

    使用Python进行数据分析时,经常要使用到的一个数据结构就是pandas的DataFrame 如果我们想要像Excel的筛选那样,只要其中的一行或某几行,可以使用isin()方法,将需要的行的值以列 ...

随机推荐

  1. C# string 是不可变的,指什么不可变

    String 表示文本,即一系列 Unicode 字符.字符串是 Unicode 字符的有序集合,用于表示文本.String 对象是 System.Char 对象的有序集合,用于表示字符串.Strin ...

  2. systemctl -- 系统服务管理器 【转】

    systemctl  -- 系统服务管理器 systemctl 是系统服务管理器命令,它实际上将 service 和 chkconfig 这两个命令组合到一起. 直接运行命令可以列出所有正在运行的服务 ...

  3. linux 目录/sys 解析

    今天搞树莓派,遇到/sys这个目录,不太清楚,先对/sys目录知识进行一个整理 首先,对 /sys目录下的各个子目录进行具体说明: /sys下的子目录 内容 /sys/devices 该目录下是全局设 ...

  4. ORACLE 存储函数

    前奏: 必要的概念: ORACLE 提供能够把 PL/SQL 程序存储在数据库中.并能够在不论什么地方来运行它.这样就叫存储过 程或函数. 过程和函数统称为 PL/SQL 子程序.他们是被命名的 PL ...

  5. Python生成随机字符串

    利用Python生成随机域名等随机字符串. #!/usr/bin/env python# -*- coding: utf-8 -*- from random import randrange, cho ...

  6. c++中的var_dump

    var_dump 在PHP中可以使用var_dump来输出变量,而且输出的内容很详细 用习惯后,再回来用c++的cout,各种不习惯,于是在github上找了一下,果然有类似的,而且是重载了 < ...

  7. WEB API Filter的使用以及执行顺序

    在WEB Api中,引入了面向切面编程(AOP)的思想,在某些特定的位置可以插入特定的Filter进行过程拦截处理.引入了这一机制可以更好地践行DRY(Don’t Repeat Yourself)思想 ...

  8. 深入理解String类详解

    1.Stringstr = "eee" 和String str = new String("eee")的区别 先看一小段代码, 1 public static ...

  9. 利用opencv进行移动物体检测

    进行运动物体检测就是将动态的前景从静态的背景中分离出来.将当前画面与假设是静态背景进行比较发现有明显的变化的区域,就可以认为该区域出现移动的物体.在实际情况中由于光照阴影等因素干扰比较大,通过像素直接 ...

  10. MySQL 数据热备份

    mysqlhotcopy使用lock tables.flush tables和cp或scp来快速备份数据库.它是备份数据库或单个表最快的途径,完全属于物理备份,但只能运行在数据库目录所在的机器上. 与 ...