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 格式化所有列表的方式,但是列表中的每个字符串项都已从中删除所有空格。
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(' ')]) 这将返回值作为列表元素
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]
添加回答
举报