熊猫 - 删除带有 nan 或 None 值的行

  • 本文关键字:None nan 删除 熊猫 pandas
  • 更新时间 :
  • 英文 :


我有一些数据是从另一个系统预填充的,其数据帧如下所示:

id;value
101;Product_1,,,,,,,,,,,,,,,,,,,,,,,Product_2,,,,,,,,,,,,,,,,,,,,,,, Product_3,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan, Product_4,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None
102;,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,nan,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None,None

我正在尝试清理它,以便我删除所有具有 2 个或更多逗号 (,( 连续为空白的值。

预期输出:

id; value
101; Product_1, Product_2, Product_3, Product_4
102;

使用分号 (;) 标识分隔符

首先,导入数据,同时将分隔符指定为分号。 然后,您可以运行str.replace()来折叠逗号。 实际上,您要执行三种替换。

  1. 将空值(和空格(替换为 ', '
  2. 将逗号序列替换为单个", ">
  3. 要处理空单元格,请添加最后一个replace。 我已将其指定为留空",但出于许多目的,将其替换为numpy.nan会更有用。
import pandas as pd
df = pd.read_csv(path, sep=';')
df['value'].str.replace(r'nan|None| ', '').str.replace(r',+', ', ').replace(', ', '')
  1. 您可能会发现使用列表而不是字符串很有用,在这种情况下,您可以使用:
df['value'].str.split(', ')

最新更新