Pandas的DataFrame转成Numpy的数组形式

生成df:

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')

df的形式如下:

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

转化1:

df=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]])

 

转化2.

df= df.as_matrix()

结果如下:
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]])

转化3,4.

df.reset_index().values

df.reset_index().values.ravel().view(dtype=[('index', int), ('A', float), ('B', float), ('C', float)])

参考:

https://www.jianshu.com/p/1cee08b4b75f



 

你可能感兴趣的:(代码)