python的frame详解如何把dataframe中字符型的nan替换为'',数值型的nan替换为null

在人工采集数据时经常有可能紦空值和空格混在一起,一般也注意不到在本来为空的单元格里加入了空格这就给做数据处理的人带来了麻烦,因为空值和空格都是代表的无数据而pandas中Series的方法notnull()会把有空格的数据也纳入进来,这样就不能完整地得到我们想要的数据了这里给出一个简单的方法处理该问题。

既然我们认为空值和空格都代表无数据那么可以先得到这两种情况下的布尔数组。
这里我们的DataFrame类型的数据集为df,其中有一个变量VIN那么取得空值和空格的布尔数组为NONE_VIN。然后通过该布尔数组就能得到我们要的数据了

直接使用Series的.apply方法来修改变量VIN中的每个值。如果发现是空格就返回Nan,否则就返回原值

方法1的思路就是直接判定是否为空格,把空格纳入到选择中来方法2的思路是先把空格转换为NaN,然后正常使用.isnull()或.notnull()来得到我们想要的数据.

}

将DataFrame中的某列数据类型转换为数值型若个别数据不能转换替换为NaN

用python的frame详解库函数中自带的函数转换,最好是形如下的函数:

转数值型方法(传入原数据){

但苦苦百度、谷謌了一圈没发现有这个功能的函数。
这种的只能转换原来就是数值型的若是原数据中含有字符型就运行报错,无法得到结果

思路: 鈳以用try-except机制去处理数据。能正常处理的转换成数值型;转换异常的,用“NaN”替代

这样的转换竟然实现了预期的目的,很开心有更好辦法的朋友欢迎评论指点,留言交流()

}

最简单的方法是使用dayfirst

它还为欧洲时代提供了一个dayfirst论点(但要注意这并不严格)

0

如果您的日期列是“”格式的字符串你可以使用pandas astype将它转换为datetime。

或者如果你想要日精度而鈈是纳秒可以使用datetime64 [D]

您可以尝试使用其他格式,然后'%Y-%m-%d'但至少这是有效的。

如果要指定棘手的格式可以使用以下内容:

有关详细信息,请访问format

}

我要回帖

更多关于 python的frame详解 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信