簡體   English   中英

熊貓DataFrame到numpy數組ValueError

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM