如何将矩阵转换为Pandas数据框

13
我正在尝试将一个矩阵转换为pandas数据框:
matrixA={}
matrixA[0,0]='a'
matrixA[0,1]='b'
matrixA[1,0]='c'
matrixA[1,1]='d'

像这样:

import pandas as pd

pd.DataFrame(matrixA)

我遇到了一个错误。


1
你正在创建一个字典,而不是一个“矩阵”阅读:10分钟入门pandas - ngulam
2个回答

25

如先前所述,您创建的不是矩阵,而是Python 字典。但是,字典可以用作参数来创建数据帧,但您颠倒了索引顺序。

import pandas as pd

matrixA={}
matrixA['a']=[0,0]
matrixA['b']=[0,1]

pd.DataFrame(matrixA)

   a  b
0  0  0
1  0  1

此外您还可以使用Numpy矩阵

import numpy as np

a = np.matrix('1 2; 3 4')
pd.DataFrame(a)

   0  1
0  1  2
1  3  4

我使用了这个链接如果你只是想要一个二维容器来保存一些元素,你可以方便地使用字典代替:'Matrix = {}'然后你可以这样做:'Matrix[1,2] = 15' 'print Matrix[1,2]'这个方法的原理是因为1,2是一个元组,你将它用作字典的键进行索引。结果类似于一个简单的稀疏矩阵。现在我想把这种方式保存的数据保存到DataFrame中,是否有内置函数可以实现? - Hangon
好的,你所提到的答案有点脱离了你想要做的事情的上下文。Pandas DataFrame init 无法处理像那样的字典(正如你应该收到的错误所示),而且我认为这不是一种真正 pythonic 的使用字典的方式。 - greole
感谢greole的帮助!下次我会尝试避免使用“dict”的方式。现在,我将使用两个循环将这个“dict”的值传递到DataFrame中。最好的问候。 - Hangon

2

嗯,我想知道我们是否可以使用Python的多维数组。是的,您可以使用Python矩阵(如Python官方文档中所述)或多维数组,并将其转换为Pandas DataFrame。

import pandas as pd
matrix = [
    ["a", 1],
    ["b", 2]
]
pd.DataFrame(matrix)

   0  1
0  a  1
1  b  2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接