我有一個資料框,其列值為 np.arrays。例如
df = pd.DataFrame([{"id":1, "sample": np.array([1,2,3])}, {"id":2, "sample": np.array([2,3,4])}])
df.to_csv("./tmp.csv", index=False)
如果我將 df 保存到 csv 并再次加載它,我會得到“樣本”列作為字串。
df_from_csv = pd.read_csv("./tmp.csv")
df_from_csv == pd.DataFrame([{"id":1, "sample": '[1 2 3]')}, {"id":2, "sample": '[2 3 4]')}])
True
有沒有更好的方法來保存/加載我的資料,不需要手動將“[1 2 3]”傳遞給對應的陣列?
uj5u.com熱心網友回復:
您可以在以下位置使用轉換器read_csv:
import numpy as np
from ast import literal_eval
import re
def to_array(x):
return np.array(literal_eval(re.sub('\s ', ',', x)))
df_from_csv = pd.read_csv("./tmp.csv", converters={'sample': to_array})
# id sample
# 0 1 [1, 2, 3]
# 1 2 [2, 3, 4]
df_from_csv.loc[0, 'sample']
# array([1, 2, 3])
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/535849.html
