在Python中删除dataframe中列表的间距

在Python中删除dataframe中列表的间距,python,dataframe,apply,Python,Dataframe,Apply,我有一个包含字符串列表的数据框,我需要删除每个列表中的空白: ID numbers 0 [ 1, 2,3, 4] 1 [ abc, zzy] 2 [ zz12, 22wq, 78] 如何删除“数字”字段中的间距 ID numbers 0 [1,2,3,4] 1 [abc,zzy] 2 [zz12,22wq,78] 这就是我尝试过的: # remove spacing df['numbers'] = df[

我有一个包含字符串列表的数据框,我需要删除每个列表中的空白:

ID        numbers
0      [ 1, 2,3, 4]
1      [ abc, zzy]
2      [ zz12, 22wq, 78]
如何删除“数字”字段中的间距

ID        numbers
0      [1,2,3,4]
1      [abc,zzy]
2      [zz12,22wq,78]
这就是我尝试过的:

# remove spacing
df['numbers'] = df['numbers'].replace({' ':''}, regex=True)
但它似乎不起作用

使用内置方法

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

使用内置方法


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

使用
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]

使用
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]

如果值的类型为“[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代表ini_列表中的x.strip('][')).replace(',','').split(')])
这将以列表元素的形式返回值

如果值的类型为“[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代表ini_列表中的x.strip('][')).replace(',','').split(')])
这将以列表元素的形式返回值

数字列是字符串吗?是的所有字符串都是数字列吗?是的所有字符串我只是在本地测试了这一点,如果数字列是字符串就可以了,正如您所指出的,我很抱歉,我犯了一个错误。每个记录都是一个字符列表。整个对象不是字符串。很抱歉,我误解了,我刚刚在本地测试了这个,如果
numbers
列是一个字符串,它就可以正常工作,正如您指出的那样,我很抱歉,我犯了一个错误。每个记录都是一个字符列表。整个对象不是字符串。对不起,我误解了