创建特定大小的pandas数据框

时间:2017-08-03 01:25:07

标签: python dataframe

在R中,我可以这样做:

myvec <- seq(from =  5, to = 10)^2
mydf <- data.frame(matrix(data = myvec, ncol = 3,byrow = TRUE))
> mydf
  X1 X2  X3
1 25 36  49
2 64 81 100

注意我可以通过传入一个ncol参数来指定数据框的形状。然后我可以通过byrow或bycolumn(在这种情况下按行)填充它。

如果我要在Python / Pandas中复制它,那么创建序列就很容易了:

myData = [x**2 for x in range(5,11) ]

但是,如何轻松制作相同大小的数据帧? 我可以这样做:

myDF = pd.DataFrame(data = myData)

但是指定列/行尺寸的参数是什么?

2 个答案:

答案 0 :(得分:9)

制作所需大小的pandas数据帧的一种方法是在创建数据帧时提供索引和列值。

df = pd.DataFrame(index=range(numRows),columns=range(numCols))

这将创建一个充满nan的数据框,其中所有列都是数据类型object。

答案 1 :(得分:6)

使用reshape指定列数(或行数):

import numpy as np
import pandas as pd

myvec = np.arange(5, 11)**2
mydf = pd.DataFrame(myvec.reshape(-1, 3))

产量

    0   1    2
0  25  36   49
1  64  81  100

调用reshape时,您可以将一个轴的长度指定为-1reshape用任何有意义的整数替换-1。例如,如果myvec.size为6,并且一个轴的长度为3,则另一个轴的长度必须为6/3 = 2.因此,-1将替换为2,因此{ {1}}返回一个形状为myvec.reshape(-1, 3)的数组--2行和3列。