簡體   English   中英

如何從熊貓數據框中獲取值並將其放入numpy數組中?

[英]How to take values out of a pandas dataframe and put them into a numpy array?

我有多個pandas數據幀,我想編寫一個函數,該函數將取出數據幀每一列中的值,並將它們放入自己的numpy數組中。

示例數據框

In [1]: df = pd.DataFrame([[1, 2], [1, 3], [4, 6]], columns=['A', 'B'])
In [2]: df
Out[2]: 
    A  B
 0  1  2
 1  1  3
 2  4  6

我如何從A和B列中的值中生成兩個不同的numpy數組

df['A'].values將返回numpy數組。 見下文:

for col in df.columns:
    print(col, type(df[col].values))
A <class 'numpy.ndarray'>
B <class 'numpy.ndarray'>

您可以使用此方法獲取每列的numpy數組列表。 您也可以將數組放入字典中,但是我更喜歡列表而不是前者,因為它是有序的,我們可以始終將zip函數與df.columns一起使用以獲取元組數據!

np_arr_list = []
for i in df.columns:
    new_np_arr = np.array(df.loc[:,i])
    np_arr_list.append(new_np_arr)

輸出:

[array([  1,  21, 213,  32], dtype=int64),
 array([ 4,  5, 32,  3], dtype=int64),
 array([213,  23,  23,   1], dtype=int64)]

這是相同的屏幕截圖

您應該使用to_numpy()方法,因為其他方法將被棄用。 如果您的pandas庫低於0.24 ,則應先對其進行更新,因為此方法已從該版本開始

>>> df = pd.DataFrame([[1, 2], [1, 3], [4, 6]], columns=['A', 'B'])
>>> arr = []
>>> for column in df.columns:
...     arr.append(df[column].to_numpy())
...
>>> arr
[array([1, 1, 4], dtype=int64), array([2, 3, 6], dtype=int64)]
>>>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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