スポンサーリンク

pandasの属性のvaluesでNumPy配列を取得

下記のように、pandasの属性のvaluesでNumPy配列を取得できます。
npArrayはnumpy.ndarrayのデータが格納されます。

import pandas as pd

npArray = df.values

また、スライスで行を指定してNumPy配列を取得できます。

npArray = df[1:3].values

列名で列を指定してNumPy配列を取得できます。

npArray = df[['col1', 'col2']].values

locで行と列を指定してNumPy配列を取得できます。

npArray = df.loc['20130202':'20170403', 'col1':'col3'].values

スポンサーリンク

サンプルコード

例えば、下記のin.txtがあったとします。

 $ cat in.txt 
20110101,3,11,1,1
20130202,2,22,2,2
20150303,1,33,3,3
20170403,7,44,4,4
20180503,9,55,5,5

下記がサンプルコードになります。
 $ cat sample.py 
#!/usr/bin/env python3
# coding: UTF-8

import pandas as pd

df = pd.read_csv('in.txt',
				names=('Date', 'col1', 'col2', 'col3', 'col4'),
				index_col='Date',
				parse_dates=True)

npArray = df.values
print(npArray)
print(type(npArray))

print("\nスライスで行を指定")
npArray = df[1:3].values
print(npArray)
print(type(npArray))

print("\n列を指定")
npArray = df[['col1', 'col2']].values
print(npArray)
print(type(npArray))

print("\nloc()で行と列を指定")
npArray = df.loc['20130202':'20170403', 'col1':'col3'].values
print(npArray)
print(type(npArray))

下記が実行結果になります。
 $ ./sample.py 
[[ 3 11  1  1]
 [ 2 22  2  2]
 [ 1 33  3  3]
 [ 7 44  4  4]
 [ 9 55  5  5]]
<class 'numpy.ndarray'>

スライスで行を指定
[[ 2 22  2  2]
 [ 1 33  3  3]]
<class 'numpy.ndarray'>

列を指定
[[ 3 11]
 [ 2 22]
 [ 1 33]
 [ 7 44]
 [ 9 55]]
<class 'numpy.ndarray'>

loc()で行と列を指定
[[ 2 22  2]
 [ 1 33  3]
 [ 7 44  4]]
<class 'numpy.ndarray'>

スポンサーリンク