将 numpy 数组转换为数据帧

Adi*_*tya 3 python numpy dataframe pandas

我有一个 numpy 数组,我想将其转换为数据框。

import numpy as np
import pandas as pd    
nparray = np.array([[1,2,3,4,5],[6,7,8,9,10]])
Run Code Online (Sandbox Code Playgroud)

如何将其转换为数据框,其中数据如下:

col1 col2
1      6
2      7
3      8
4      9
5      10
Run Code Online (Sandbox Code Playgroud)

小智 6

使用以下代码将 numpy 数组转换为 DF。

df = pd.DataFrame(nparray.T, columns=['col1', 'col2'])
Run Code Online (Sandbox Code Playgroud)


Art*_*Sbr 5

我最喜欢的将 numpy 数组转换为 pandas DataFrames 的方法是传递字典中的列:

df = pd.DataFrame({'col1':nparray[0], 'col2':nparray[1]})
Run Code Online (Sandbox Code Playgroud)

但是,如果您有很多列,您可以尝试:

# Create list of column names with the format "colN" (from 1 to N)
col_names = ['col' + str(i) for i in np.arange(nparray.shape[0]) + 1]
# Declare pandas.DataFrame object
df = pd.DataFrame(data=nparray.T, columns=col_names)
Run Code Online (Sandbox Code Playgroud)

在第二个解决方案中,您必须在将数组传递给 之前重新构造数组data = ...。也就是说,您必须重新排列,nparray以便具有行和列。Numpy 有一个方法:您只需添加.T到数组中即可:nparray.T