当前位置: 首页 > 面试题库 >

Python-将pandas数据框转换为NumPy数组

籍英叡
2023-03-14
问题内容

我对知道如何将熊猫数据框转换为NumPy数组感兴趣。

数据框:

import numpy as np
import pandas as pd

index = [1, 2, 3, 4, 5, 6, 7]
a = [np.nan, np.nan, np.nan, 0.1, 0.1, 0.1, 0.1]
b = [0.2, np.nan, 0.2, 0.2, 0.2, np.nan, np.nan]
c = [np.nan, 0.5, 0.5, np.nan, 0.5, 0.5, np.nan]
df = pd.DataFrame({'A': a, 'B': b, 'C': c}, index=index)
df = df.rename_axis('ID')

label   A    B    C
ID                                 
1   NaN  0.2  NaN
2   NaN  NaN  0.5
3   NaN  0.2  0.5
4   0.1  0.2  NaN
5   0.1  0.2  0.5
6   0.1  NaN  0.5
7   0.1  NaN  NaN

我想将其转换为NumPy数组,如下所示:

array([[ nan,  0.2,  nan],
       [ nan,  nan,  0.5],
       [ nan,  0.2,  0.5],
       [ 0.1,  0.2,  nan],
       [ 0.1,  0.2,  0.5],
       [ 0.1,  nan,  0.5],
       [ 0.1,  nan,  nan]])

我怎样才能做到这一点?

作为奖励,是否可以像这样保留dtype?

array([[ 1, nan,  0.2,  nan],
       [ 2, nan,  nan,  0.5],
       [ 3, nan,  0.2,  0.5],
       [ 4, 0.1,  0.2,  nan],
       [ 5, 0.1,  0.2,  0.5],
       [ 6, 0.1,  nan,  0.5],
       [ 7, 0.1,  nan,  nan]],
     dtype=[('ID', '<i4'), ('A', '<f8'), ('B', '<f8'), ('B', '<f8')])

或类似的?


问题答案:

要将pandas数据框(df)转换为numpy ndarray,请使用以下代码:

df.values

array([[nan, 0.2, nan],
       [nan, nan, 0.5],
       [nan, 0.2, 0.5],
       [0.1, 0.2, nan],
       [0.1, 0.2, 0.5],
       [0.1, nan, 0.5],
       [0.1, nan, nan]])


 类似资料:
  • 问题内容: 我正在尝试将Pandas DF转换为Spark one。DF头: 码: 我得到一个错误: 问题答案: 您需要确保您的pandas dataframe列适合spark推断的类型。如果您的熊猫数据框列出类似以下内容: 而且您遇到该错误,请尝试: 现在,确保实际上是您希望这些列成为的类型。基本上,当底层Java代码尝试从python中的对象推断类型时,它会使用一些观察值并做出猜测,如果该猜测

  • 问题内容: 我正在从Pandas数据框创建矩阵,如下所示: 然后使用以下公式生成稀疏矩阵: 从df直线到稀疏矩阵有什么办法吗? 提前致谢。 问题答案: 是一个numpy数组,以这种方式访问​​值总是比快。 您可能需要先进行移调,例如。在DataFrames中,列为轴0。

  • 问题内容: 我试图将输出转换为熊猫数据框,但我很努力。我有这个清单 我想创建一个具有3列和3行的熊猫数据框。我尝试使用 但它似乎对我不起作用。任何帮助,将不胜感激。 问题答案: 您需要转换为然后:

  • 问题内容: 我需要将列表转换为一列熊猫数据框 当前列表(len = 3): 所需的熊猫DF(形状= 3,): 请注意,这些数字代表上述“必需熊猫” DF中的索引。 问题答案: 采用: 谢谢DYZ:

  • 以下是一个数据帧 它需要转换成一个Numpy数组,其中成为Numpy数组的索引,成为相应的值。 即,,等等。 如何做到这一点?

  • 问题内容: 我正在从一列存储为JSON的数据库(超过5万行)中读取数据。我想将其提取到pandas数据框中。下面的代码片段可以正常工作,但是效率很低,并且在对整个数据库运行时会花费很多时间。请注意,并非所有项目都具有相同的属性,并且JSON具有一些嵌套的属性。 我怎样才能使它更快? 问题答案: json_normalize接受一个已经处理过的json字符串或一系列这样的字符串。 设定