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]
添加回答
舉報