python - 将 pandas 数据帧保存到 csv 时如何保留 numpy 数组

标签 python csv pandas numpy

我有一个 pandas.DataFrame,其中一列作为图像。该列的每一行都是一个二维 numpy.array 图像。我使用 pandas.DataFrame.to_csv()DataFrame 保存到 csv 文件。但是,当我打开 csv 文件时,该列变为字符串而不是 numpy.array

如何读取csv文件并保留numpy.array

最佳答案

要从 csv 文件中读取 numpy.array,您可以为 pandas.read_csv 提供一个转换器函数。

代码:

import ast
import numpy as np
def from_np_array(array_string):
    array_string = ','.join(array_string.replace('[ ', '[').split())
    return np.array(ast.literal_eval(array_string))

测试代码:

import numpy as np
import pandas as pd

image = np.array([[0.1, 0.2], [0.3, 0.4]])
df = pd.DataFrame(
    [['image name1', image],
     ['image name2', image],
     ],
    columns=['names', 'images']).set_index('names')
print(df)
df.to_csv('sample.csv')

df2 = pd.read_csv('sample.csv', converters={'images': from_np_array})
print(df2)

结果:

                               images
names                                
image name1  [[0.1, 0.2], [0.3, 0.4]]
image name2  [[0.1, 0.2], [0.3, 0.4]]

         names                    images
0  image name1  [[0.1, 0.2], [0.3, 0.4]]
1  image name2  [[0.1, 0.2], [0.3, 0.4]]

关于python - 将 pandas 数据帧保存到 csv 时如何保留 numpy 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42755214/

相关文章:

python - 索引错误: indices out of the bound

python - Pandas 数据框中的矢量化字符串操作

python - 使用 Cartopy 在 map 上显示图像时的投影问题

python - Qt4 Phonon 支持的音频格式?

python - 测量数据帧的负/正偏度

c# - 为什么我的 List<string> 没有完全写在我的 .CSV 中?

python - 如何通过python在csv文件中添加反向重复列的值

斯卡拉 Spark : Performance issue renaming huge number of columns

Python OpenCV imshow() 函数未实现

python - 如何将随机森林分类器应用于所有数据集,在 python 中一次一小部分