如何从熊猫数据框中获取值并将其放入numpy数组中?

时间:2019-04-10 05:25:41

标签: python pandas

我有多个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数组

3 个答案:

答案 0 :(得分:1)

df['A'].values将返回numpy数组。参见下文:

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

答案 1 :(得分:0)

您可以使用此方法为每一列获取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)]

Here's a screenshot for the same

答案 2 :(得分:0)

您应该使用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)]
>>>