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

我对知道如何将熊猫数据框转换为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]])

以上是 Python-将pandas数据框转换为NumPy数组 的全部内容, 来源链接: utcz.com/qa/435831.html

回到顶部