[英]Pandas DataFrame to Numpy Array ValueError
我正在嘗試將數據幀的單列轉換為numpy數組。 轉換整個數據框沒有問題。
DF
viz a1_count a1_mean a1_std
0 0 3 2 0.816497
1 1 0 NaN NaN
2 0 2 51 50.000000
這兩個功能都可以正常工作:
X = df.as_matrix()
X = df.as_matrix(columns=df.columns[1:])
但是,當我嘗試:
y = df.as_matrix(columns=df.columns[0])
我得到:
TypeError: Index(...) must be called with a collection of some kind, 'viz' was passed
這里的問題是您只傳遞了一個元素,在這種情況下,該元素只是該列的字符串標題,如果將其轉換為具有單個元素的列表,則它可以工作:
In [97]:
y = df.as_matrix(columns=[df.columns[0]])
y
Out[97]:
array([[0],
[1],
[0]], dtype=int64)
這是您要傳遞的內容:
In [101]:
df.columns[0]
Out[101]:
'viz'
因此,這等效於:
y = df.as_matrix(columns='viz')
導致相同的錯誤
該文檔顯示了預期的參數:
DataFrame.as_matrix(columns = None)將框架轉換為其Numpy數組表示形式。
參數:columns:列表,可選,默認值:None如果為None,則返回所有列,否則,返回指定的列
as_matrix
需要columns
關鍵字的list
,而df.columns[0]
不是列表。 嘗試使用df.as_matrix(columns=[df.columns[0]])
。
使用索引列表功能也可以
df.as_matrix(columns=df.columns[0].tolist())
當給出多個列時,例如,先輸入十列,然后輸入命令
df.as_matrix(columns=[df.columns[0:10]])
由於返回索引而無法正常工作 。 但是,使用
df.as_matrix(columns=df.columns[0:10].tolist())
效果很好。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.