You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中移除DataFrame列表字段内空格的问题求助

解决DataFrame列表元素移除空格的问题

我之前也踩过这个坑!你原来的方法无效,核心原因是df['numbers']列里的每个元素都是列表对象,直接调用replace是把整个列表当作一个整体来处理,根本没触碰到列表内部的字符串元素,自然起不到去空格的作用。

咱们换个思路,针对每个列表里的字符串逐个处理,给你两种实用的解法:

方法一:用apply+列表推导式(最直观)

直接遍历numbers列的每个列表,对列表里的每一个字符串元素移除所有空格:

import pandas as pd

# 先构造示例数据
df = pd.DataFrame({
    'ID': [0, 1, 2],
    'numbers': [[' 1', ' 2', '3', ' 4'], [' abc', ' zzy'], [' zz12', ' 22wq', ' 78']]
})

# 移除列表元素中的空格
df['numbers'] = df['numbers'].apply(lambda x: [s.replace(' ', '') for s in x])

执行后df['numbers']就会变成你想要的格式:

0    [1, 2, 3, 4]
1        [abc, zzy]
2    [zz12, 22wq, 78]
Name: numbers, dtype: object

方法二:如果只需要移除元素前后的空格

如果你的需求只是去掉字符串首尾的空格(中间空格保留),可以把replace(' ', '')换成strip():

df['numbers'] = df['numbers'].apply(lambda x: [s.strip() for s in x])

为什么原方法无效?

再补充下原代码的问题:df['numbers'].replace({' ':''}, regex=True)是试图对列中的每个元素(也就是列表)做字符串替换,但列表不是字符串类型,Pandas无法对列表对象执行字符串替换操作,所以这个代码不会产生任何效果。

内容的提问来源于stack exchange,提问作者Mazz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 23:39:05