2017-05-09 9 views
-1

私はこのデータフレームを持っている: enter image description heredataframeの値を配列形式にする方法は?

Iが抽出に出力があるべき配列の形で値列のすべてのデータを、持つことを望む: [ナン、47、47.9、48.6]

誰も私にアイデアを教えてもらえますか? listためnumpy array + numpy.ndarray.tolistため

+0

可能な複製に非数値を変換する[パンダのデータフレームの列からリストを取得](http://stackoverflow.com/questions/22341271/get-list-from-pandas-dataframe-column) – McGrady

答えて

2

使用values

L = df['value'].values.tolist() 
#alternative 
#L = df['value'].tolist() 

それともlistに変換:

L = list(df['value']) 

EDIT:あなたがastypeすることにより、第1 floatに変換する必要があるようだ

df = pd.DataFrame({'value':['nan','47','47.9','48.6']}) 
print (df) 
    value 
0 nan 
1 47 
2 47.9 
3 48.6 

L1 = df['value'].values.tolist() 
print (L1) 
['nan', '47', '47.9', '48.6'] 

L2 = df['value'].astype(float).values.tolist() 
print (L2) 
[nan, 47.0, 47.9, 48.6] 

floatすべての値が異なる出力を得るためならば - 47.0ない47

df = pd.DataFrame({'value':[np.nan,47,47.9,48.6]}) 
    value 
0 NaN 
1 47.0 
2 47.9 
3 48.6 

L = df['value'].values.tolist() 
print (L) 
[nan, 47.0, 47.9, 48.6] 

EDIT1:

astypeもしリターンエラー例:

ValueError: could not convert string to float: 'a'

その後、パラメータを指定してto_numericを必要としますerrors='coerce'以下のためのNaN

df = pd.DataFrame({'value':[np.nan,47,47.9,48.6, 'a']}) 
print (df) 
    value 
0 NaN 
1 47 
2 47.9 
3 48.6 
4  a 

print (pd.to_numeric(df['value'], errors='coerce')) 
0  NaN 
1 47.0 
2 47.9 
3 48.6 
4  NaN 
Name: value, dtype: float64 

L = pd.to_numeric(df['value'], errors='coerce').values.tolist() 
print (L) 
[nan, 47.0, 47.9, 48.6, nan] 
関連する問題