为了账号安全,请及时绑定邮箱和手机立即绑定

在 Python 中从数据帧中的列表中删除间距

在 Python 中从数据帧中的列表中删除间距

aluckdog 2022-09-06 17:29:12
我有一个包含字符串列表的数据帧,我需要删除每个列表中的空格:ID        numbers0      [ 1, 2,3, 4]1      [ abc, zzy]2      [ zz12, 22wq, 78]如何删除“数字”字段中的间距?ID        numbers0      [1,2,3,4]1      [abc,zzy]2      [zz12,22wq,78]这是我尝试过的:# remove spacingdf['numbers'] = df['numbers'].replace({' ':''}, regex=True)但它似乎不起作用!
查看完整描述

3 回答

?
人到中年有点甜

TA贡献1895条经验 获得超7个赞

使用内置的分解方法。


df = pd.DataFrame({'ID': [0, 1, 2], 'numbers': [[' 1', '2','3',' 4'], [' abc',' zzy'], [' zz12',' 22wq',' 78']]})


temp = df.explode('numbers')

temp['numbers'] = temp.numbers.str.strip()

temp.groupby('ID', as_index=False).agg(list)


   ID           numbers

0   0      [1, 2, 3, 4]

1   1        [abc, zzy]

2   2  [zz12, 22wq, 78]

请注意,列表中的每个逗号后面仍然有一个空格,因为这是 IDE 格式化所有列表的方式,但是列表中的每个字符串项都已从中删除所有空格。


查看完整回答
反对 回复 2022-09-06
?
翻过高山走不出你

TA贡献1875条经验 获得超3个赞

如果值的类型为“[1,2,3]”而不是[1,2,3],即列表:df['numbers']=df['numbers'].transform(lambda val:str(val).replace(' ',''))

但这会使你的列 str 类型。如果要将值作为列表返回,则 df['numbers']=df['numbers'].transform(lambda val: [x for x in ini_list.strip('] [').replace(',','').split(' ')]) 这将返回值作为列表元素


查看完整回答
反对 回复 2022-09-06
?
临摹微笑

TA贡献1982条经验 获得超2个赞

使用表达式:lambda


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


   ID           numbers

0   0      [1, 2, 3, 4]

1   1        [abc, zzy]

2   2  [zz12, 22wq, 78]


查看完整回答
反对 回复 2022-09-06
  • 3 回答
  • 0 关注
  • 93 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信