如何保存和读取Pandas矩阵

rekjcdws  于 2022-11-27  发布在  其他
关注(0)|答案(1)|浏览(184)

我尝试用pd.to_csv命令来保存和读取不同大小的矩阵。问题是Pandas以字符串形式保存矩阵,因此当我读取CSV文件时,我不能以数值形式检索矩阵。
第一个

第一次

read_matrices的每一行都是一个字符串,我希望它们是数值矩阵(ndarray或pdseries)。
我想这和我保存数据的方式有关,我试了pd.to_csv()的所有选项都没有结果。有什么想法吗?

2guxujil

2guxujil1#

append完成时,\n出现,可能是“vector”对象被转换为“simple”。因此,我立即将得到的numpy数组转换为dataframe,然后将其添加到所需的dataframe中。对于数据类型,我使用了experimental type,因为Pandas的空单元格被nan填充,这些列中的整数变成了float。

import numpy as np
import pandas as pd

df = pd.DataFrame(dtype=pd.Int64Dtype())
for Dim in range(3, 10):
    l = np.random.randint(1, 10, (Dim, Dim))
    dfl = pd.DataFrame(l, dtype=pd.Int64Dtype())
    df = pd.concat([df, dfl], ignore_index=True)

df.to_csv("matrices.csv", index=False)
read_matrices = pd.read_csv("matrices.csv", dtype=pd.Int64Dtype())

print(read_matrices)

-------------------------------------

    0  1  2     3     4     5     6     7     8
0   9  1  9  <NA>  <NA>  <NA>  <NA>  <NA>  <NA>
1   3  5  6  <NA>  <NA>  <NA>  <NA>  <NA>  <NA>
2   6  8  1  <NA>  <NA>  <NA>  <NA>  <NA>  <NA>
3   2  3  2     1  <NA>  <NA>  <NA>  <NA>  <NA>
4   8  4  9     6  <NA>  <NA>  <NA>  <NA>  <NA>
5   7  1  6     4  <NA>  <NA>  <NA>  <NA>  <NA>
6   2  6  2     4  <NA>  <NA>  <NA>  <NA>  <NA>
7   6  4  2     6     6  <NA>  <NA>  <NA>  <NA>
8   2  3  3     1     1  <NA>  <NA>  <NA>  <NA>
9   4  8  2     8     2  <NA>  <NA>  <NA>  <NA>
10  2  4  5     7     3  <NA>  <NA>  <NA>  <NA>
11  7  9  4     2     7  <NA>  <NA>  <NA>  <NA>
12  3  2  2     8     5     2  <NA>  <NA>  <NA>
13  2  7  5     8     5     4  <NA>  <NA>  <NA>
14  2  7  2     8     4     4  <NA>  <NA>  <NA>
15  3  3  1     1     4     8  <NA>  <NA>  <NA>
16  5  3  4     3     3     6  <NA>  <NA>  <NA>
17  6  2  7     2     2     2  <NA>  <NA>  <NA>
18  4  6  5     8     8     3     6  <NA>  <NA>
19  6  8  1     2     1     4     7  <NA>  <NA>
20  4  4  7     6     1     5     3  <NA>  <NA>
21  6  2  4     5     5     8     2  <NA>  <NA>
22  3  9  1     1     8     9     4  <NA>  <NA>
23  1  6  1     2     5     4     5  <NA>  <NA>
24  2  9  9     9     3     8     4  <NA>  <NA>
25  5  4  5     7     2     2     1     9  <NA>
26  8  6  7     6     1     2     4     2  <NA>
27  6  1  9     1     5     6     1     3  <NA>
28  8  6  8     6     9     8     9     2  <NA>
29  7  7  5     9     9     9     2     3  <NA>
30  1  8  6     7     4     7     6     9  <NA>
31  8  2  6     6     1     2     9     7  <NA>
32  7  6  7     2     5     4     1     3  <NA>
33  4  8  4     7     2     6     1     3     3
34  6  1  5     4     2     1     8     9     5
35  3  6  3     3     9     9     6     9     3
36  5  3  1     9     5     9     2     4     2
37  6  5  8     5     9     5     4     8     4
38  3  2  2     2     4     8     1     3     1
39  7  3  9     2     5     5     2     6     7
40  9  1  8     3     4     9     3     5     6
41  8  3  4     9     8     8     8     1     8

相关问题