相当于numpy数组的熊猫read_sql_query?

时间:2020-01-28 14:40:12

标签: python pandas numpy numpy-ndarray

我想使用与pandas“ read_sql_query”等效的东西,将数据库中的数据加载到numpy数组中,而不是pandas数据帧中。

在大熊猫中,我使用类似的东西:

df = pd.read_sql_query(sql="select * from db;", con=con, index_col='index')

现在我需要一个类似的功能

A = read_sql_to_np(sql="select * from db;")

其中A是一个numpy数组。

1 个答案:

答案 0 :(得分:2)

可以使用numpy方法将任何数据帧转换为to_array()数组:

>>> df = pandas.DataFrame({'A': [1, 2, 3], 
                           'B': [1.0, 2.0, 3.0], 
                           'C': ['a', 'b', 'c']})
>>> df.to_numpy()
array([[1, 1.0, 'a'],
       [2, 2.0, 'b'],
       [3, 3.0, 'c']], dtype=object)
>>> df['A'].to_numpy()
array([1, 2, 3])
>>> df[['A', 'B']].to_numpy()
array([[1., 1.],
       [2., 2.],
       [3., 3.]])
>>> df[['C']].to_numpy()
array([['a'],
       ['b'],
       ['c']], dtype=object)

因此您可以简单地使用pandas,然后从结果数据框中提取numpy数组。

正如Parfait所指出的那样,在进行转换时必须注意数据类型。我在上面的示例中将其保留为隐式,但是请注意第一个示例如何使用dtype=object生成数组,而第二个示例如何生成普通的浮点数组。我认为,numpy中有关数据类型的详细讨论超出了这个问题的范围。