这篇文章主要介绍了使用pandas或numpy处理数据中的空值(np.isnan()/pd.isnull()),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
最近在做数据处理的时候,遇到个让我欲仙欲死的问题,那就是数据中的空值该如何获取。
我的目的本来是获取数据中的所有非零且非空值,然后再计算获得到的所有数据计算均值,再用均值把0和空值填上。这个操作让我意识到了i is None/np.isnan(i)/i.isnull()之间的差别,再此做简单介绍:
先明确一个问题,即空值的产生只有np.nan()一种方法。
对某个值是否为空值进行判断,只能用np.isnan(i)函数,万万不可用 i == np.nan()来做,否则你会死的很惨的,因为空值并不能用判断相等的“==”正确识别(上例前两条);
np.nan非空对象,其类型为基本数据类型float(是不是很神奇,我也不知道为什么要这样设计)
# 值得一提的是,如果想获悉整个DataFrame有无空值,可以在此基础上这样做:
其他与空值检测或删除相关的函数还有:notna()、fillna()、dropna()等等。实战中应灵活使用。
多种方式创建nan(空值)
在np中nan需要用isnan这个函数来识别,还要注意:
x 中所有的元素都变成了浮点型,这是因为nan是浮点型的。
np.nan不是一个“空”对象,对某个值是否为空值进行判断,只能用np.isnan(i)函数。
np.nan非空对象,其类型为基本数据类型float。
np.nan()可以对不论是DataFrame、Python list还是仅仅一个数值进行空值检测。但一般在实际应用中,np.nan()多用于单个值的检验。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
}
我们发现关于时间日期的简单计算很多功能都是datetime库提供的,那么pandas有没有提供跟日期时间有关的函数,通过下面文章来了解下,这篇文章主要给大家介绍了关于Python Pandas高级教程之时间处理的相关资料,需要的朋友可以参考下
pandas中有四种时间类型:
- Time spans: 由时间点及其关联的频率定义的时间跨度。
0
看一下上面数据类型的空值:
Timestamp 是最基础的时间类型,我们可以这样创建:
使用format参数可以对时间进行格式化:
Period 表示的是一个时间跨度,通常和freq一起使用:
Period可以直接进行运算:
DateOffset表示的是频率对象。它和Timedelta很类似,表示的是一个持续时间,但是有特殊的日历规则。比如Timedelta一天肯定是24小时,而在 DateOffset中根据夏令时的不同,一天可能会有23,24或者25小时。
时间可以作为index,并且作为index的时候会有一些很方便的特性。
可以直接使用时间来获取相应的数据:
DF可以接受时间作为loc的参数:
考虑下面的一个精度为分的Series对象:
时间精度小于分的话,返回的是一个Series对象:
时间精度大于分的话,返回的是一个常量:
同样的,如果精度为秒的话,小于秒会返回一个对象,等于秒会返回常量值。
通过指定 freq , 可以设置shift的方式:
0
0
0
时间序列可以通过调用 asfreq 的方法转换其频率:
asfreq还可以指定修改频率过后的填充方法:
给定的时间序列可以通过调用resample方法来重新取样:
到此这篇关于Python Pandas高级教程之时间处理的文章就介绍到这了,更多相关Pandas时间处理内容请搜索猪先飞以前的文章或继续浏览下面的相关文章希望大家以后多多支持猪先飞!
}