我正在尝试使用以下代码创建数据框,但是它始终为空,我不确定为什么。有什么建议么?谢谢!
step_size = 0.01
start = [100]
iter_list = list(range(10000))
for i in iter_list:
start.append(start[i] - step_size)
iter_list2 = list(range(len(start)))
variable_step = pd.DataFrame()
for i in iter_list2:
variable_step[i] = ((start[i]*step_size)/100)
答案 0 :(得分:1)
对于数据框是什么,您似乎有些困惑。您的代码似乎无法识别DataFrame是具有行和列的二维数据结构。
执行variable_step[i] = ((start[i]*step_size)/100)
时,您将在variable_step
中创建一个新列,并将列标签设置为i
的当前值,并将该列的每个元素初始化为{{ 1}},因为((start[i]*step_size)/100)
是标量。
以这种方式创建新列不会添加更多行。它只是向现有行添加更多值-全部为0。您创建的每个新列的长度均为0,因为您从不创建行。
如果您想让我告诉您如何解决此问题,那么我不能,因为我不知道您甚至想做什么。
答案 1 :(得分:0)
您在此处初始化空数据框:
variable_step = pd.DataFrame()
假设您打算将列表放入数据框,则应该:
variable_step = pd.DataFrame(start) # or any other list you need
此外,您可以在上一循环的数据框中按索引寻址项目,以在数据框为空时分配值。 使用.append()代替