社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

Python:无法成功删除仅包含空格值的行

celery_gemini • 3 年前 • 1263 次点击  

我有一个包含地址字段的数据框,比如 NUMBER , STREET , POSTCODE 等等。我想删除所有包含 NaN 空格 任何 在这些专栏中。

第一部分,移除 -包含行适用于:

df = df.dropna(subset=["NUMBER","STREET","POSTCODE"]

但我在空白处遇到了麻烦。我注意到有些行包含 "" 价值观,还有可能 " " 以及其他“看不见的”字符串。根据其他问题的建议,我尝试了以下方法:

df.replace("",np.nan,inplace=True) # then using dropna

df.drop(df.loc[df["NUMBER"]==""].index, inplace=True) # then repeating for the other cols

df = df[df["NUMBER"].str.strip().astype(bool)] # then repeating for the other cols

但在所有情况下,我最终还是得到了空值。我确认至少有一些空格与字符串相等 "" 通过使用:

df["NUMBER"][index_with_blank] == "" # which returns: True

type(df["NUMBER"][index_with_blank]) # which returns: str

所以现在我不知道该如何处理这些行。非常感谢您的帮助或建议。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/133783
 
1263 次点击  
文章 [ 1 ]  |  最新文章 3 年前
jezrael
Reply   •   1 楼
jezrael    3 年前

将“否”、“一个或多个空格”替换为缺少的值,然后删除行:

df = df.replace(r'^\s*$', np.nan, regex=True).dropna(subset=["NUMBER","STREET","POSTCODE"])

或者,如果需要删除某些列中的值,而不更改原始数据帧:

cols = ["NUMBER","STREET","POSTCODE"]
df = df[df[cols].replace(r'^\s*$', np.nan, regex=True).notna().all(axis=1)]