python--Numpy and Pandas 笔记01
博客地址:http://www.cnblogs.com/yudanqu/ 1 import numpy as np
import pandas as pd
from pandas import Series,DataFrame #Series
s1 = Series([1,2,3], index=['A','B','C'])
s2 = Series([4,5,6,7], index=['B','C','D','E']) s1 + s2
# 结果:A NaN
# B 6.0
# C 8.0
# D NaN
# E NaN
# dtype: float64
# 对应项相加,其他为nan #DataFrame
df1 = DataFrame(np.arange(4).reshape(2,2),index=['A','B'],columns=['BJ','SH'])
df2 = DataFrame(np.arange(9).reshape(3,3),index=['A','B','C'],columns=['BJ','SH','GZ'])
df1 + df2
#结果: BJ GZ SH
# A 0.0 NaN 2.0
# B 5.0 NaN 7.0
# C NaN NaN NaN df3 = Datadf3 = DataFrame([[1,2,3],[4,5,np.nan],[7,8,9]],index=['A','B','C'],columns=['c1','c2','c3'])
'''
c1 c2 c3
A 1 2 3.0
B 4 5 NaN
C 7 8 9.0
'''
df3.sum()
#结果:c1 12.0
# c2 15.0
# c3 12.0
# dtype: float64
#这里的nan与实数相运算并不返回nan
df3.sum(axis=1) #则求得每一行的和,即ABC,由于默认axis=0,所以不写表示求的列 df3.min() #求最小值,max同理。整体同理与sum,不考虑nan df3.describe() #统计内部数据 # 排序功能
#注:randn:正态分布
rand:0到1
#Series:
s1 = Series(np.random.randn(10))
s2 = s1.sort_values() # 根据values排序
# 默认参数ascending=True,升序为True,倒序可以改参数sacending=False
s2.sort_index() # 根据index升序排列
#DataFrame:
df1 = DataFrame(np.random.randn(40).reshape(8,5),columns=['A','B','C','D','E'])
df1['A'].sort_values() #仅仅是对着一列排序,若想整体根据这一列进行排序要多df1进行排序
df1.sort_values('A') #则为全部排序,默认升序 df1.sort_values('A')[['A','D']] # 根据某列排序并输出所需要的几列 #重命名
df1.index = df1.index.map(str) #修改dataframe的index
df1.rename(index=str.upper,columns=str.lower) #通过map函数改变整个
df1.rename(index={'A':'a'},columns={'B':'b'}) #通过字典修改某一项
# map函数的参数可以使自己定义的函数 #dataframe的merge操作
pd.merge(df1,df2,on='name',how='inner') # on表示根据哪列的name来作为判断依据,默认为None,how的参数中比如写left,那么就根据左侧的df;爱显示数据,若右边一个没有的则补全为nan,outer是right和left的结合,将所有的都输出
df1 = DataFrame({'key':['A','B','C'],'data_set_1':[1,2,3]})
df2 = DataFrame({'key':['X','Y','Z'],'data_set_2':[4,5,6]})
pd.merge(df1,df2) # 这时的结果返回为空,因为merge是对其中key值相同的进行操作
# 当相同name的columns(例如此例的key)时,他中的值相同,那么可以进行merge #concatenate和combine #~~concatenate: #1、array
arr1 = np.arange(9).reshape(3,3)
arr2 = np.arange(9).reshape(3,3)
np.concatenate([arr1,arr2]) #通过列表放在一起
'''
output:array([[0, 1, 2],
[3, 4, 5],
[6, 7, 8],
[0, 1, 2],
[3, 4, 5],
[6, 7, 8]])
注:其中concatenate的参数包括axis,可以决定如何连接
''' #2、Series
s1 = Series([1,2,3],index=['X','Y','Z'])
s2 = Series([4,5],index=['A','B'])
pd.concat([s1,s2]) #同样有axis参数,为0则在下面连接,为1则横向 #3、dataframe
df1 = DataFrame(np.random.randn(4,3),columns=['X','Y','Z'])
df2 = DataFrame(np.random.randn(3,3),columns=['X','Y','A'])
pd.concat([df1,df2])
'''
Out:
A X Y Z
0 NaN -0.060523 0.879124 1.673622
1 NaN 0.734367 0.708085 -0.133981
2 NaN 0.461922 -2.186110 -4.473558
3 NaN 1.553153 -2.256533 -0.381862
0 1.304371 -0.275638 1.362799 NaN
1 -0.357986 -0.273505 0.430566 NaN
2 1.406862 1.453295 -0.681261 NaN
''' #~~combine: #1、Series:
s1 = Series([2,np.nan,4,np.nan],index=['A','B','C','D'])
s1 = Series([1,2,3,4],index=['A','B','C','D'])
s1.combine_first(s2) #把s1中没有的填充上从s2 #2、DataFrame:
#和series几乎一样 作者:渔单渠
博客地址:http://www.cnblogs.com/yudanqu/
python--Numpy and Pandas 笔记01的更多相关文章
- python numpy和pandas做数据分析时去掉科学记数法显示
1.Numpy import numpy as np np.set_printoptions(suppress=True, threshold=np.nan) suppress=True 取消科学记数 ...
- python numpy模块使用笔记(更新)
np.arange(int a) 生成一个一维array,元素个数是a个,元素是0到a-1 注意arange不能直接生成多维array np.arange(int a).reshape(int b,i ...
- Python scrapy爬虫学习笔记01
1.scrapy 新建项目 scrapy startproject 项目名称 2.spiders编写(以爬取163北京新闻为例) 此例中用到了scrapy的Itemloader机制,itemloade ...
- Python Numpy,Pandas基础笔记
Numpy Numpy是python的一个库.支持维度数组与矩阵计算并提供大量的数学函数库. arr = np.array([[1.2,1.3,1.4],[1.5,1.6,1.7]])#创建ndarr ...
- python安装numpy和pandas
最近要对一系列数据做同比比较,需要用到numpy和pandas来计算,不过使用python安装numpy和pandas因为linux环境没有外网遇到了很多问题就记下来了.首要条件,python版本必须 ...
- [转] python安装numpy和pandas
最近要对一系列数据做同比比较,需要用到numpy和pandas来计算,不过使用python安装numpy和pandas因为linux环境没有外网遇到了很多问题就记下来了.首要条件,python版本必须 ...
- 有关python numpy pandas scipy 等 能在YARN集群上 运行PySpark
有关这个问题,似乎这个在某些时候,用python写好,且spark没有响应的算法支持, 能否能在YARN集群上 运行PySpark方式, 将python分析程序提交上去? Spark Applicat ...
- Python入门之安装numpy和pandas
最近要对一系列数据做同比比较,需要用到numpy和pandas来计算,不过使用python安装numpy和pandas因为linux环境没有外网遇到了很多问题就记下来了. 首要条件,python版本必 ...
- python及numpy,pandas易混淆的点
https://blog.csdn.net/happyhorizion/article/details/77894035 初接触python觉得及其友好(类似matlab),尤其是一些令人拍案叫绝不可 ...
随机推荐
- eclipse配置环境变量 (特别是输入javac无显示问题)
下载JDK:http://www.oracle.com/technetwork/java/javase/downloads/index.html 最近win10恢复了一下系统,重新给eclipse配一 ...
- 资深程序员整理出来的Python面试题
转载链接:https://www.cnblogs.com/fcxwz/p/9225791.html
- windows网络编程中文 笔记(二)
IPv4 地址段 IPv4地址类别 种类 网络部分 第1个数字 端点数字 A 8位 0-127 16777216 B 16位 128-191 65526 C 24位 193-223 ...
- Snapshot origin volumes can be resized only while inactive: try lvchange -an
事件现象: 最近同事在扩展VG时遇到了"Snapshot origin volumes can be resized only while inactive: try lvchange ...
- javascript中(function($){...})(jQuery)写法是什么意思
这里实际上是匿名函数function(arg){...}这就定义了一个匿名函数,参数为arg 而调用函数 时,是在函数后面写上括号和实参的,由于操作符的优先级,函数本身也需要用括号,即:(functi ...
- 关于getdate()的不同的日期格式
在使用Sql Server查询数据库时,我们经常会需要查询日期格式的数据,对于日期在sql语言中的格式有一定的要求,通过修改convert中的最后一位参数,可以返回不通格式的时间,具体实现如下: Se ...
- C++实现第三方资源释放与载入过程(以DLL为例)
简介 我们经常看见有一些程序开始执行时会释放一些文件,以便于后续操作.例如一些病毒为了便于传播和隐藏,经常把一些需要用的动态库或是驱动文件打包进一个可执行文件中,再由需要使用的时候,再临时释放和加载. ...
- 【算法】LeetCode算法题-Merge Two Sorted List
这是悦乐书的第148次更新,第150篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第7题(顺位题号是21).合并两个已排序的链表并将其作为新链表返回. 新链表应该通过拼接 ...
- 详解javascript立即执行函数表达式(IIFE)
立即执行函数,就是在定义函数的时候直接执行,这里不是申明函数而是一个函数表达式 1.问题 在javascript中,每一个函数在被调用的时候都会创建一个执行上下文,在函数内部定义的变量和函数只能在该函 ...
- 《Java大学教程》—第17章 Java聚焦类框架
由所有聚焦类构成,在java.util包中,包含三个重要接口:* List列表:元素为单个对象,元素在列表中是有序.可重复* Set集合:元素为单个对象,元素在集合中无序.不可重复* ...
