如何在不覆盖现有数据的情况下根据特定行向数据框的列添加新值

时间:2019-08-04 13:59:01

标签: python dataframe

我有一批标识符和一对值,它们在迭代中的行为如下。 例如,

print(indexIDs[i], (coordinate_x, coordinate_y))

样本输出看起来像

enter image description here

我想将这些数据添加到数据帧中,在这里我可以使用indexIDs [i]作为行,并在接下来的连续列中将传入的具有相同标识符的值对追加

我试图执行下面的代码,但这没用。

spatio_location = pd.DataFrame()
spatio_location.loc[indexIDs[i], column_counter] = (coordinate_x, coordinate_y)

将indexID [i]作为行关联是一个理想的开始,但是在不覆盖以前的数据帧的情况下,我无法继续处理传入的数据。我知道这与使用“ =”符号的第二行有关。

我知道我的第二行是一遍又一遍地覆盖以前的结果。我正在寻找一种适当的方式来更改我的第二行,以将新的传入数据插入到现有数据框中,而不会不时覆盖。

感谢您的时间和精力,谢谢。

1 个答案:

答案 0 :(得分:1)

无论如何,我对满座x的本质还是有些困惑(它是列表还是什么?),也许尝试使用append

您可以定义一个包含三列的空df

df=pd.DataFrame([],columns=['a','b','c'])

在列表上添加循环后

for i in range TOFILL:
    df=df.append({'a':indexIDs[i],'b':coordinate_x[i],'c':coordinate_y[i]},ignore_index=True)

最终将一列设置为索引

df=df.set_index('a')

希望有帮助