当前位置: 首页 > 知识库问答 >
问题:

如何在pandas[duplicate]中清空字符串

叶福
2023-03-14

所以,我一直在用python处理pandas,我从外部系统中提取数据,每列末尾都有很多空格。我想到了在每个系列中使用一个str.strip()方法和一个代码:

Data["DESCRIPTION"] =  Data["DESCRIPTION"].str.strip()

它基本上完成了它的工作,但我注意到,当我检查使用数据帧的属性时,我遇到了一个问题,如果在一个值中只有没有任何文本的空格,那么它是空的,但它不会将标量转换为空:

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 18028 entries, 0 to 18027
Data columns (total 11 columns):
 #   Column          Non-Null Count  Dtype 
---  ------          --------------  ----- 
 0   VIN             18028 non-null  object
 1   DESCRIPTION     18028 non-null  object
 2   DESCRIPTION 2   18028 non-null  object
 3   ENGINE          18023 non-null  object
 4   TRANSMISSION    18028 non-null  object
 5   PAINT           18028 non-null  object
 6   EXT_COLOR_CODE  18028 non-null  object
 7   EXT_COLOR_DESC  18028 non-null  object
 8   INT_COLOR_DESC  18028 non-null  object
 9   COUNTRY         18028 non-null  object
 10  PROD_DATE       18028 non-null  object
dtypes: object(11)
memory usage: 1.5+ MB

但是,如果字符串为空,则检查条件:

Data['DESCRIPTION 2'] == ""


    0        True
    1        True
    2        True
    3        True
    4        True
             ... 
    18023    True
    18024    True
    18025    True
    18026    True
    18027    True
    Name: DESCRIPTION 2, Length: 18028, dtype: bool

我怎么可能将所有这些转换为空,以便我可以使用dropna()函数删除它们?

如有任何建议,我将不胜感激。

共有1个答案

和光启
2023-03-14

要删除尾随空格并将空字符串或记录仅替换为空格,请运行以下命令。

Data["DESCRIPTION"].str.strip().replace(r'^\s*$', np.nan, regex=True)

请参阅本页,用pandas中的NaN替换空白值(空白)

 类似资料:
  • 像这样的空字符串isnull()找不到空字符串

  • 我有一个熊猫数据框(通过导入csv文件创建)。我想用NaN替换空白值。这些空白值中有些是空的,有些包含(可变数量的)空格,,,等等。 使用这个线程中的建议 它会替换所有只包含空格的字符串,但也会替换每个包含空格的字符串,这不是我想要的。 如何仅用空格和空字符串替换字符串?

  • 我不想拆分我的字符串,以便hello的值得到“hello”,而hi的值得到“hi”

  • 对于类似字符串的列具有以下列: 虽然这些肯定是有用的,但了解任何给定列中是否有空值以及有多少空值也是非常重要的。 虽然我可以求助于编写自定义函数来找到它,但这将是一个巨大的额外开销。请注意,有一个相关的问题,但主要关注数字列,因此不直接适用:如何计算DataFrame中列中的NaN值。那么,是否还有另一个助手函数可以提供这些附加信息呢?

  • 现在假设用户enterd AAA-222 结果将是 ps.拆分的部分应该包括空格。

  • 我有这样的数据: 我想创建一个新的列,将成本转换为美元。只是提一下,有12种货币。 这是我所写的: 使用这段代码,我得到了一个错误。