我有一个 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
提交
取消