![](/img/trans.png)
[英]How do a take values out of a pandas dataframe and put them into a new list?
[英]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.