我有一個 csv 檔案,如下所示:
COL0;COl1;COL2;COL3;...;COL9999
SomeText0;[-3.45,0.23];[-1.40,0.21];[-1.35,0.13];...;[-1.87,0.12]
SomeText1;[-3.05,0.20];[-0.40,0.01];[-0.05,0.03];...;[-1.65,0.33]
SomeText2;[-0.40,0.03];[-1.00,0.20];[-0.35,0.03];...;[-1.43,0.12]
...
所有單元格都是字串(例如"[-3.45,0.23]"),但我希望它們是np.float64-1d 陣列(COL0當然除外)
我如何有效地做到這一點?
uj5u.com熱心網友回復:
只需正常讀取 CSV,然后使用內置函式ast.literal_eval將字串決議為浮點陣列:
import ast
df = pd.read_csv('YOUR FILE.csv', sep=';')
df.loc[:, 'COl1':] = df.loc[:, 'COl1':].apply(lambda col: col.apply(ast.literal_eval).apply(np.asarray))
輸出:
>>> df
COL0 COl1 COL2 COL3 COL9999
0 SomeText0 [-3.45, 0.23] [-1.4, 0.21] [-1.35, 0.13] [-1.87, 0.12]
1 SomeText1 [-3.05, 0.2] [-0.4, 0.01] [-0.05, 0.03] [-1.65, 0.33]
2 SomeText2 [-0.4, 0.03] [-1.0, 0.2] [-0.35, 0.03] [-1.43, 0.12]
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/447230.html
下一篇:Pandas系列中的扁平化串列
