python pandas消除空值和空格以及 Nan数据替换方法
2019/7/15 0:03:20
本文主要是介绍python pandas消除空值和空格以及 Nan数据替换方法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
在人工采集数据时,经常有可能把空值和空格混在一起,一般也注意不到在本来为空的单元格里加入了空格。这就给做数据处理的人带来了麻烦,因为空值和空格都是代表的无数据,而pandas中Series的方法notnull()会把有空格的数据也纳入进来,这样就不能完整地得到我们想要的数据了,这里给出一个简单的方法处理该问题。
方法1:
既然我们认为空值和空格都代表无数据,那么可以先得到这两种情况下的布尔数组。
这里,我们的DataFrame类型的数据集为df,其中有一个变量VIN,那么取得空值和空格的布尔数组为NONE_VIN。然后通过该布尔数组,就能得到我们要的数据了
NONE_VIN = (df["VIN"].isnull()) | (df["VIN"].apply(lambda x: str(x).isspace())) df_null = df[NONE_VIN] df_not_null = df[~NONE_VIN]
方法2:
直接使用Series的.apply方法来修改变量VIN中的每个值。如果发现是空格,就返回Nan,否则就返回原值。
df["VIN"]=df["VIN"].apply(lambda x: np.NaN if str(x).isspace() else x) df_null = df[df["VIN"].isnull()] df_not_null = df[df["VIN"].notnull()]
将dataframe中的NaN替换成希望的值
import pandas as pd df1 = pd.DataFrame([{'col1':'a', 'col2':1}, {'col1':'b', 'col2':2}]) df2 = pd.DataFrame([{'col1':'a', 'col3':11}, {'col1':'c', 'col3':33}]) data = pd.merge(left=df1, right=df2, how='left', left_on='col1', right_on='col1') print data # 将NaN替换为None print data.where(data.notnull(), None)
输出结果:
col1 col2 col3 0 a 1 11 1 b 2 NaN col1 col2 col3 0 a 1 11 1 b 2 None
总结:
方法1的思路就是直接判定是否为空格,把空格纳入到选择中来。方法2的思路是先把空格转换为NaN,然后正常使用.isnull()或.notnull()来得到我们想要的数据。
以上这篇python pandas消除空值和空格以及 Nan数据替换方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持找一找教程网。
这篇关于python pandas消除空值和空格以及 Nan数据替换方法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-24Python编程基础详解
- 2024-11-21Python编程基础教程
- 2024-11-20Python编程基础与实践
- 2024-11-20Python编程基础与高级应用
- 2024-11-19Python 基础编程教程
- 2024-11-19Python基础入门教程
- 2024-11-17在FastAPI项目中添加一个生产级别的数据库——本地环境搭建指南
- 2024-11-16`PyMuPDF4LLM`:提取PDF数据的神器
- 2024-11-16四种数据科学Web界面框架快速对比:Rio、Reflex、Streamlit和Plotly Dash
- 2024-11-14获取参数学习:Python编程入门教程