码迷,mamicode.com
首页 > 其他好文 > 详细

pandas--

时间:2019-04-29 19:17:41      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:索引数组   value   布尔值   dex   缺失值   not   平均值   获取   3.0   

pandas
1、基于NumPy构建
2、具备对其功能的数据结构DataFrame、Series
3、集成时间序列功能
4、提供丰富的数学运算和操作
5、灵活处理缺失数据
pip install pandas
import pandas as pd

Series 一维数据对象
1、Series是一种类似于一维数组的对象,由一组数据和一组与之相关的数据标签(索引)组成。
2、创建方式:
pd.Series([4, 7, -5, 3])
pd.Series([4, 7, -5, 3], index=[‘a‘,‘b‘,‘c‘,‘d‘])
pd.Series({‘a‘:1, ‘b‘:2})
pd.Series(0, index=[‘a‘,‘b‘,‘c‘,‘d‘])
3、获取值和索引数组:values属性和index属性
sr.index
sr.values
4、Series比较像数组和字典的结合体
a、支持数组的特性
*从ndarray创建Series:Series(arr)
*与标量运算:sr*2
*两个Series运算:sr1+sr2
*索引:sr[0], sr[[1,2,4]]
*切片:sr[0:2]
*通用函数:np.abs(sr)
*布尔值过滤:sr[sr>0]
b、支持字典的特性
*从字典创建Series:Series(dic)
*in运算:‘a‘ in sr
*键索引:str[‘a‘],str[[‘a‘,‘b‘,‘d‘]]
*花式:sr[[‘a‘,‘c‘]]
*切片:sr[‘a‘:‘c‘]

应用:例如表格数据,列名可以当做key
5、Series-整数索引
整数索引的pandas对象往往会使新手抓狂。
例如:sr对象是
10 10
11 11
12 12
13 13
...
sr[10]表示的是什么呢?默认解释为标签,这时候
sr.loc[10]:解释为标签
sr.iloc[10]:解释为下标
如果索引是整数类型,则根据整数进行下标获取值时总是面向标签的。
解决方法:loc属性(将索引解释为标签)和iloc属性(将索引解释为下标)
5、Series-数据对齐
例:
sr1=pd.Series([12,23,34], index=[‘c‘,‘a‘,‘d‘])
sr1=pd.Series([11,20,10], index=[‘d‘,‘c‘,‘a‘])
pandas在进行两个Series对象的运算时,会按标签key进行对齐,然后计算。

例:
sr1=pd.Series([12,23,34], index=[‘c‘,‘a‘,‘d‘])
sr1=pd.Series([11,20,10], index=[‘b‘,‘c‘,‘a‘])
sr1+sr2两列相加,如果一个里面有b标签,另外一个没有,相加会出现NAN
如何使结果在‘b‘处值为11,在索引‘d‘处的值为34?
灵活的算术方法:add, sub, div, mul 对应+-*/
sr1.add(sr2, fill_value=0) # 没有的那个标签会被fill成0

6、Series缺失值的处理
a、删掉缺失数据
sr=[{‘a‘:33.0,
‘b‘:NaN,
‘c‘:32.0,
‘d‘:NaN}]
sr.isnull() [a:False,b:True, c:False,d:True]
sr.notnull() [a:True, b:Fasle,c:True, d:False]
扔掉缺失数据: sr[sr.notnull()] 或 sr.dropna()
b、填充缺失数据
NaN变为0: sr.fillna(0) #不会改sr,要保存要重新赋值
NaN变为平均值: sr.fillna(sr.mean())

Series小结

Series是数组+字典的集合体
特点:按下标,按key,切片...
整数索引:loc和iloc
数据对齐:默认是按标签对齐
缺失值处理:对不齐的出现NAN,扔掉NaN或者填充NaN

 

pandas--

标签:索引数组   value   布尔值   dex   缺失值   not   平均值   获取   3.0   

原文地址:https://www.cnblogs.com/staff/p/10792101.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!