将元素添加到熊猫的空数据框中

时间:2019-04-10 15:37:27

标签: python pandas dataframe

我是Python新手,有一个基本问题。我有一个空数据框Resulttable,其中包含A B和C列,我想继续填写一些计算的答案,这些计算在由循环索引n表示的循环中运行。对于前。我想将值12存储在A列的第n行中,将35存储在B列的第n行中,依此类推,对于整个n范围。

我尝试过类似的事情

Resulttable['A'].iloc[n] = 12
Resulttable['B'].iloc[n] = 35

对于n的第一个值n = 0,我得到一个错误的单个位置索引器越界。 我该如何解决?谢谢!

2 个答案:

答案 0 :(得分:0)

您可以先创建一个空的熊猫数据框,然后在计算时逐行追加。在您的范围内,如果要迭代0-12,则需要指定一个比希望的最大值高的值,即range(0,13)。

import pandas as pd

df = pd.DataFrame([], columns=["A", "B", "C"])
for i in range(0, 13):
    x = i**1
    y = i**2
    z = i**3
    df_tmp = pd.DataFrame([(x, y, z)], columns=["A", "B", "C"])
    df = df.append(df_tmp)

df = df.reset_index()

这将导致如下所示的DataFrame:

df.head()
index   A   B   C
0   0   0   0   0
1   0   1   1   1
2   0   2   4   8
3   0   3   9   27
4   0   4   16  64

答案 1 :(得分:0)

无法填充像这样的空数据框。由于您的数据框中没有任何条目,例如

Resulttable['A'].iloc[n]

将始终导致您描述的IndexError。 与其尝试像这样填充数据框,不如将循环的结果更好地存储在一个可以称为“ result_list”的列表中。然后,您可以像这样使用列表创建数据框:

Resulttable= pd.DataFrame({"A": result_list})

如果您要在数据框的另一列中存储另一个结果列表,例如result_list2,则可以这样创建数据框:

Resulttable= pd.DataFrame({"A": result_list, "B": result_list2})

如果已经创建了“ Resulttable”,则可以添加B列

Resulttable["B"] = result_list2

希望我能帮助您。