簡體   English   中英

保存pandas dataframe到csv時如何保持numpy數組

[英]how to keep numpy array when saving pandas dataframe to csv

我有一個pandas.DataFrame ,其中一列作為圖像。 該列的每一行都是一個2d 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]]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM