1.   博客地址:http://www.cnblogs.com/yudanqu/
  2.  
  3. 1 import numpy as np
  4. import pandas as pd
  5. from pandas import Series,DataFrame
  6.  
  7. #Series
  8. s1 = Series([1,2,3], index=['A','B','C'])
  9. s2 = Series([4,5,6,7], index=['B','C','D','E'])
  10.  
  11. s1 + s2
  12. # 结果:A NaN
  13. #   B 6.0
  14. #    C 8.0
  15. #    D NaN
  16. #   E NaN
  17. #   dtype: float64
  18. # 对应项相加,其他为nan
  19.  
  20. #DataFrame
  21. df1 = DataFrame(np.arange(4).reshape(2,2),index=['A','B'],columns=['BJ','SH'])
  22. df2 = DataFrame(np.arange(9).reshape(3,3),index=['A','B','C'],columns=['BJ','SH','GZ'])
  23. df1 + df2
  24. #结果: BJ GZ SH
  25. #   A 0.0 NaN 2.0
  26. #   B 5.0 NaN 7.0
  27. #   C NaN NaN NaN
  28.  
  29. df3 = Datadf3 = DataFrame([[1,2,3],[4,5,np.nan],[7,8,9]],index=['A','B','C'],columns=['c1','c2','c3'])
  30. '''
  31. c1 c2 c3
  32. A 1 2 3.0
  33. B 4 5 NaN
  34. C 7 8 9.0
  35. '''
  36. df3.sum()
  37. #结果:c1 12.0
  38. #   c2 15.0
  39. #   c3 12.0
  40. #   dtype: float64
  41. #这里的nan与实数相运算并不返回nan
  42. df3.sum(axis=1) #则求得每一行的和,即ABC,由于默认axis=0,所以不写表示求的列
  43.  
  44. df3.min() #求最小值,max同理。整体同理与sum,不考虑nan
  45.  
  46. df3.describe() #统计内部数据
  47.  
  48. # 排序功能
  49. #注:randn:正态分布
  50. rand01
  51. #Series:
  52. s1 = Series(np.random.randn(10))
  53. s2 = s1.sort_values() # 根据values排序
  54. # 默认参数ascending=True,升序为True,倒序可以改参数sacending=False
  55. s2.sort_index() # 根据index升序排列
  56. #DataFrame:
  57. df1 = DataFrame(np.random.randn(40).reshape(8,5),columns=['A','B','C','D','E'])
  58. df1['A'].sort_values() #仅仅是对着一列排序,若想整体根据这一列进行排序要多df1进行排序
  59. df1.sort_values('A') #则为全部排序,默认升序
  60.  
  61. df1.sort_values('A')[['A','D']] # 根据某列排序并输出所需要的几列
  62.  
  63. #重命名
  64. df1.index = df1.index.map(str) #修改dataframe的index
  65. df1.rename(index=str.upper,columns=str.lower) #通过map函数改变整个
  66. df1.rename(index={'A':'a'},columns={'B':'b'}) #通过字典修改某一项
  67. # map函数的参数可以使自己定义的函数
  68.  
  69. #dataframe的merge操作
  70. pd.merge(df1,df2,on='name',how='inner') # on表示根据哪列的name来作为判断依据,默认为None,how的参数中比如写left,那么就根据左侧的df;爱显示数据,若右边一个没有的则补全为nan,outer是right和left的结合,将所有的都输出
  71. df1 = DataFrame({'key':['A','B','C'],'data_set_1':[1,2,3]})
  72. df2 = DataFrame({'key':['X','Y','Z'],'data_set_2':[4,5,6]})
  73. pd.merge(df1,df2) # 这时的结果返回为空,因为merge是对其中key值相同的进行操作
  74. # 当相同name的columns(例如此例的key)时,他中的值相同,那么可以进行merge
  75.  
  76. #concatenate和combine
  77.  
  78. #~~concatenate:
  79.  
  80. #1、array
  81. arr1 = np.arange(9).reshape(3,3)
  82. arr2 = np.arange(9).reshape(3,3)
  83. np.concatenate([arr1,arr2]) #通过列表放在一起
      '''
  84. output:array([[0, 1, 2],
  85. [3, 4, 5],
  86. [6, 7, 8],
  87. [0, 1, 2],
  88. [3, 4, 5],
  89. [6, 7, 8]])
  90. 注:其中concatenate的参数包括axis,可以决定如何连接
      '''
  91.  
  92. #2、Series
  93. s1 = Series([1,2,3],index=['X','Y','Z'])
  94. s2 = Series([4,5],index=['A','B'])
  95. pd.concat([s1,s2]) #同样有axis参数,为0则在下面连接,为1则横向
  96.  
  97. #3、dataframe
  98. df1 = DataFrame(np.random.randn(4,3),columns=['X','Y','Z'])
  99. df2 = DataFrame(np.random.randn(3,3),columns=['X','Y','A'])
  100. pd.concat([df1,df2])
      '''
  101. Out:
  102. A X Y Z
  103. 0 NaN -0.060523 0.879124 1.673622
  104. 1 NaN 0.734367 0.708085 -0.133981
  105. 2 NaN 0.461922 -2.186110 -4.473558
  106. 3 NaN 1.553153 -2.256533 -0.381862
  107. 0 1.304371 -0.275638 1.362799 NaN
  108. 1 -0.357986 -0.273505 0.430566 NaN
  109. 2 1.406862 1.453295 -0.681261 NaN
      '''
  110.  
  111. #~~combine:
  112.  
  113. #1、Series:
  114. s1 = Series([2,np.nan,4,np.nan],index=['A','B','C','D'])
  115. s1 = Series([1,2,3,4],index=['A','B','C','D'])
  116. s1.combine_first(s2) #把s1中没有的填充上从s2
  117.  
  118. #2、DataFrame:
  119. #和series几乎一样
  120.  
  121. 作者:渔单渠
    博客地址:http://www.cnblogs.com/yudanqu/

python--Numpy and Pandas 笔记01的更多相关文章

  1. python numpy和pandas做数据分析时去掉科学记数法显示

    1.Numpy import numpy as np np.set_printoptions(suppress=True, threshold=np.nan) suppress=True 取消科学记数 ...

  2. python numpy模块使用笔记(更新)

    np.arange(int a) 生成一个一维array,元素个数是a个,元素是0到a-1 注意arange不能直接生成多维array np.arange(int a).reshape(int b,i ...

  3. Python scrapy爬虫学习笔记01

    1.scrapy 新建项目 scrapy startproject 项目名称 2.spiders编写(以爬取163北京新闻为例) 此例中用到了scrapy的Itemloader机制,itemloade ...

  4. Python Numpy,Pandas基础笔记

    Numpy Numpy是python的一个库.支持维度数组与矩阵计算并提供大量的数学函数库. arr = np.array([[1.2,1.3,1.4],[1.5,1.6,1.7]])#创建ndarr ...

  5. python安装numpy和pandas

    最近要对一系列数据做同比比较,需要用到numpy和pandas来计算,不过使用python安装numpy和pandas因为linux环境没有外网遇到了很多问题就记下来了.首要条件,python版本必须 ...

  6. [转] python安装numpy和pandas

    最近要对一系列数据做同比比较,需要用到numpy和pandas来计算,不过使用python安装numpy和pandas因为linux环境没有外网遇到了很多问题就记下来了.首要条件,python版本必须 ...

  7. 有关python numpy pandas scipy 等 能在YARN集群上 运行PySpark

    有关这个问题,似乎这个在某些时候,用python写好,且spark没有响应的算法支持, 能否能在YARN集群上 运行PySpark方式, 将python分析程序提交上去? Spark Applicat ...

  8. Python入门之安装numpy和pandas

    最近要对一系列数据做同比比较,需要用到numpy和pandas来计算,不过使用python安装numpy和pandas因为linux环境没有外网遇到了很多问题就记下来了. 首要条件,python版本必 ...

  9. python及numpy,pandas易混淆的点

    https://blog.csdn.net/happyhorizion/article/details/77894035 初接触python觉得及其友好(类似matlab),尤其是一些令人拍案叫绝不可 ...

随机推荐

  1. ERP项目应该由谁来主导?

    前段时间在朋友圈看到了别人分享的公众号,主要是谈ERP项目应该由谁来主导的问题.文章的观点认为应该由哪个部门主导ERP的判断标准如下: 1.应该由一个期望上进的部门主导ERP项目: 2.应该由一个有话 ...

  2. win7文件搜索技巧

    重要说明   (1)搜索的字符串是大小写不敏感的 (2)字符串带双引号与不带双引号是有区别的 如:hello,搜索包含hello单词开头的文件或目录,名为“aa_HELLOcc...”.“cc-Hel ...

  3. 2018(2017)美图java服务端笔试(回忆录)

    选择题有几道,是比较基础的 填空题两道:一道是类似c语言的给出abc的值求 ++a+b+++c++  ,另一道是说出两个常见的垃圾回收算法 编程题 找出出现次数为1的数字然后改进(要求O(n)) 数据 ...

  4. 以太坊之——golang以太坊接口调用

    Go语言具有简单易学.功能强大,可跨平台编译等众多优势,所以这里选择以Go语言切入以太坊. 开始之前需要以下环境: Ubuntu(这里以ubuntu16.04为例) geth Ubuntu16.04安 ...

  5. SpringBoot集成spring-data-jpa注入Bean失败

    当项目结构正常(spring管理的Bean在SrpingBoot启动类平级或下级,支持spring扫描时),实现类上加 @Service注解,在实现类中注入dao层的Bean时,项目无法启动,无法找到 ...

  6. c/c++ 类模板初探

    类模板 1,模板类里的函数都是模板函数 2,模板类里的函数,在类外面实现的时候,要用模板函数(方法:push_back)的方式实现,在类内部实现时,不需要用模板函数(方法:show)方式实现. 3,用 ...

  7. Windows Server 2016-域站点链接及子网调整

    很多情况下我们在判别域控间或者域中各站点同步是否正常往往的操作内容就是查看两台域控间PING或者解析是否正常,或者查看双方防火墙是否关闭,但实际情况下我们需要注意的是,保证站点间Active Dire ...

  8. 第八章 Hyper-V 2012 R2 故障转移群集

    和终端用户相比,企业用户对于业务的连续性和可靠性更为在意.相对而言,企业一般不会将追逐单一硬件的性能排在第一位. 如何衡量业务是否持续可用,一般使用"x 个 9"这种方式来定义.如 ...

  9. Tomcat优化配置

    1.环境: 系统:Windows.Linux Tomcat版本:9 2.编码与性能调优 server.xml文件: <Connector port="8080" connec ...

  10. js获取当前页面url网址信息

    js如何准确获取当前页面url网址信息 在WEB开发中,时常会用到javascript来获取当前页面的url网址信息,在这里是我的一些获取url信息的小总结. 下面我们举例一个URL,然后获得它的各个 ...