创建特定大小
问题描述:
在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
通知我可以通过传递在NcoI位参数specfiy数据帧的形状。然后我可以通过行或列(在这种情况下按行)填充它。
如果我在Python /大熊猫复制此,它很容易创建序列:
myData = [x**2 for x in range(5,11) ]
然而,如何轻松地做出同样大小的数据帧? 我可以这样做:
myDF = pd.DataFrame(data = myData)
但是,什么是指定列/行尺寸参数?
答
使用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
你被允许指定一个轴线的长度为-1
。 reshape
用任何有意义的整数代替-1
。例如,如果myvec.size
为6,并且一个轴的长度为3,则另一个轴的长度必须为6/3 = 2。因此-1
被替换为2,因此myvec.reshape(-1, 3)
返回形状为(2, 3)
的数组 - 2行和3列。
答
制作您希望大小的熊猫数据框的一种方法是在创建数据框时提供索引和列值。
df = pd.DataFrame(index=range(numRows),columns=range(numCols))
这将创建一个数据帧全南的所有列的数据类型的对象。
嗨,然后它总是填写“按行”? – user1357015
默认情况下,'reshape'“按行填充”(在所谓的“C顺序”中)。如果你想“按列填充”,使用'myvec.reshape(-1,3,order ='F')'。 – unutbu
完美 - 正是我需要的。 – user1357015