我有一個 Pandas 數據框,df它的每個元素都是一個完整的 numpy 數組。例如列的第 6 行'x_grid':>>> e = df.loc[6,'x_grid']>>> print(e)[-11.52616579 -11.48006112 -11.43395646 -11.3878518 -11.34174713 -11.29564247 -11.24953781 -11.20343315 -11.15732848 -11.11122382 -11.06511916 -11.01901449 ...但是我不能將它用作 numpy 數組,因為它只是作為字符串給出:>>> print(type(e))<class 'str'>如何將 numpy 數組存儲到數據幀中,使其不會被轉換為字符串?或者以一種很好的方式將此字符串轉換回 numpy 數組?
3 回答

慕桂英4014372
TA貢獻1871條經驗 獲得超13個贊
想要擴展 Rafal 的答案,以避免 numpy 從空字符串中拋出異常x.split
:
df['x_grid'].str[1:-1].apply(lambda x: list(filter(None,x.split(' ')))).apply(lambda x: np.array(x).astype(np.float))

jeck貓
TA貢獻1909條經驗 獲得超7個贊
如果您只想將每一行中的所有這些字符串轉換為列表,則以下內容將起作用:
df['x_grid'].str[1:-1].str.split(" ").apply(lambda x: (list(map(float, x))))
# or for a numpy array
df['x_grid'].str[1:-1].str.split(" ").apply(lambda x: (np.array(list(map(float, x)))))
希望有幫助。

紅糖糍粑
TA貢獻1815條經驗 獲得超6個贊
添加回答
舉報
0/150
提交
取消