You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Pandas数据框去除首尾空格及对应功能函数开发需求

如何在Pandas数据框中去除字符串首尾空格(保留中间空格)?

处理这类字符串清洗需求时,我经常会用精准定位列类型的方式来实现,既能完成首尾空格的去除,又不会误操作数字、空值这类非字符串数据。下面是具体的实用方案:

步骤1:导入所需库

先确保你已经安装了Pandas和NumPy,然后导入它们:

import pandas as pd
import numpy as np

步骤2:定义通用处理函数

我写了一个可以复用的函数,它会自动识别数据框里的字符串列,只对这些列做首尾空格去除,其他类型的列保持原样:

def strip_string_whitespace(df):
    # 筛选出所有字符串类型的列(object类型)
    string_cols = df.select_dtypes(include=['object']).columns
    # 对每个字符串列应用首尾空格去除操作
    for col in string_cols:
        # str.strip()会保留中间空格,且自动跳过NaN空值
        df[col] = df[col].str.strip()
    return df

函数细节说明:

  • select_dtypes(include=['object']):精准定位字符串列,避免误处理数字、日期等非字符串数据
  • str.strip():专门针对字符串的首尾空白字符(包括空格、制表符)做去除,完美保留文本中间的空格;遇到NaN空值时会直接返回原内容,不会抛出错误

步骤3:用示例数据验证效果

用你提供的示例数据来测试这个函数:

# 创建示例数据框
df = pd.DataFrame(
    [
        ["A b ",2,3],
        [np.nan,2,3],
        [" random",43,4],
        [" any txt is possible "," 2 1",22],
        ["",23,99],
        [" help ",23,np.nan]
    ],
    columns=['A','B','C']
)

# 调用函数处理数据
cleaned_df = strip_string_whitespace(df)

# 查看处理后的结果
print(cleaned_df)

最终处理结果:

A     B     C
0                  A b     2     3
1                  NaN     2     3
2               random    43     4
3  any txt is possible   2 1    22
4                         23    99
5                 help    23   NaN

可以看到:

  • 列A里的"A b "变成了"A b"(保留中间空格,去除首尾)
  • " random"" help "分别被处理成"random""help"
  • 空字符串""处理后保持原样,NaN空值完全不受影响
  • 列B中的字符串" 2 1"被处理成"2 1",数字列C则没有任何变化

内容的提问来源于stack exchange,提问作者S.Gu

火山引擎 最新活动