将numpy数组转换为pandas dataframe

时间:2020-02-23 14:42:12  来源:igfitidea点击:

在本教程中,我们将看到如何将Numpy数组转换为Pandas DataFrame。
我们可以使用DataFrame的Contructor从Numpy阵列中创建Pandas DataFrame。
这个构造函数需要 dataindexcolumnsdtype作为参数。

pd.DataFrame(data, index, columns, dtype)

使用numpy数组创建DataFrame

如果我们没有通过数据分开的任何其他参数,则会获取ndArray类型的DataFrame,因此这就是如何将Numpy.ndArray转换为DataFrame的方式。

import numpy as np
import pandas as pd
nArray = np.arange(6).reshape(2,3)</p>
<p>print("-------Original ndarray-------\n",nArray)</p>
<p>df = pd.DataFrame(nArray)
print("-------Converted DataFrame-------\n",df)

输出:

-------Original ndarray------
[[0 1 2]
[3 4 5]]
-------Converted DataFrame------
0  1  2
0  0  1  2
1  3  4  5

使用数据,索引和列创建DataFrame

我们可以指定 indexcolumndtype以及将numpy.ndarray转换为dataframe。

import numpy as np
import pandas as pd
nArray = np.arange(6).reshape(2,3)</p>
<p>print("-------Original ndarray-------\n",nArray)</p>
<p>df = pd.DataFrame(nArray,index= ['One','Two'], columns=['C1','C2','C3'])</p>
<p>print("-------Converted DataFrame-------\n",df)

输出:

-------Original ndarray------
[[0 1 2]
[3 4 5]]
-------Converted DataFrame------
C1  C2  C3
One   0   1   2
Two   3   4   5

创建后更改DataFrame列

我们可以在创建DataFrame列后更改DataFrame列。
这是一个例子:

import numpy as np
import pandas as pd
nArray = np.arange(6).reshape(2,3)</p>
<p>print("-------Original ndarray-------\n",nArray)</p>
<p>df = pd.DataFrame(nArray,index= ['One','Two'], columns=['C1','C2','C3'])
df.columns=['Col1','Col2','Col3']
print("-------Converted DataFrame-------\n",df)

输出:

-------Original ndarray------
[[0 1 2]
[3 4 5]]
-------Converted DataFrame------
Col1  Col2  Col3
One     0     1     2
Two     3     4     5

将numpy数组添加为pandas dataframe的新列

如果我们想要将Numpy数组添加为Pandas DataFrame的新列,我们可以使用pd.concat()方法如下所示:

import numpy as np
import pandas as pd
df = pd.DataFrame({'a':[10,20],'b':[30,40]})
nArray = np.arange(6).reshape(2,3)</p>
<p>df = pd.concat([df, pd.DataFrame(nArray)], axis=1)</p>
<p>print("-------Converted DataFrame-------\n",df)

输出:

-------Converted DataFrame------
a   b  0  1  2
0  10  30  0  1  2
1  20  40  3  4  5

如我们所见,3个新的列已添加到现有的DataFrame中。