我有一個資料框,其值如下所示
colA desired
[0] 0
[3, 1] 3,1
[3, 1, 2] 3,1,2
[3, 1] 3,1
colA 的型別是 object。有沒有辦法做到這一點?謝謝
uj5u.com熱心網友回復:
沒有 lambda,因為這對于較大的資料集會更慢,您可以簡單地將串列轉換為字串型別,然后去除不需要的字符。
import pandas as pd
df = pd.DataFrame(data={'colA':[[0], [3,1],[3,1,2],[3,1]]})
df['desired'] = df.colA.astype(str).str.replace('\[|\]|\'', '')
df
輸出:
colA desired
0 [0] 0
1 [3, 1] 3, 1
2 [3, 1, 2] 3, 1, 2
3 [3, 1] 3, 1
uj5u.com熱心網友回復:
嘗試:
df = pd.DataFrame(data={'colA':[[0], [3,1],[3,1,2],[3,1], [4]]})
df['desired'] = df['colA'].apply(lambda x: ','.join(map(str, x)))
輸出:
colA desired
0 [0] 0
1 [3, 1] 3,1
2 [3, 1, 2] 3,1,2
3 [3, 1] 3,1
4 [4] 4
如果 colA 是 obj:
from ast import literal_eval
df = pd.DataFrame(data={'colA':["[0]", "[3,1]","[3,1,2]","[3,1]", "[4]"]})
df['desired'] = df['colA'].apply(lambda x: ','.join(map(str, literal_eval(x))))
uj5u.com熱心網友回復:
您可以使用str.replace:
df['desired'] = df['colA'].str.replace(r'[][]', '', regex=True)
印刷:
colA desired
0 [0] 0
1 [3, 1] 3, 1
2 [3, 1, 2] 3, 1, 2
3 [3, 1] 3, 1
您可以使用正則運算式演示來玩它。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/335426.html
上一篇:總和等于一個數字的子串
