【发布时间】:2021-08-04 01:46:57
【问题描述】:
我有一个 df,其中一列是数组,其中每个单元格是 1*50 维度并且有 20 行。
import pandas as pd
df = pd.DataFrame(zip(list(range(0, 20, 1)), np.random.rand(20, 50)),
columns=['id', 'array'])
此时,将数组列用于与其他数组的任何数组运算(加法、乘法、除法等)都没有问题。
但是,如果将 df 保存为 csv 并在另一个笔记本中读取(我没有在这里演示的好方法),则数组列中的每个单元格都会变成列表包装的字符串,并使用 ast literal_eval 或 to_numpy没用。
'[1.2 -2.3 2.1 ... 4.1]'
这里如何防止数组变成字符串?
【问题讨论】:
-
答案是不要保存在
csv。csv是文本文件,它不关心数据结构。使用df.to_pickle和pd.read_pickle。