Python Append仅在数据框中保留最后一个条目

时间:2018-07-09 23:21:29

标签: python pandas

我创建了一个函数,该函数通过数据库系统连接,然后将值传递给下图:

Example

接下来,我使用了我的函数并在下面进行了遍历:

df_tmp = pd.DataFrame([])
df_master = [] #Convert this to a list instead of a PD Dataframe

for i in PI_tags:
    df_tmp = df_tmp.append(ReadPiValues(i, interval, start_date, end_date))
    df_master.append(df_tmp)

我的理解是,随着追加的工作原理,它应该会覆盖数据,而只是将其追加到数据框。然而, 而不是追加,似乎覆盖了数据框。

我不明白为什么会这样。 我已经阅读了许多与Append相关的SO问题,但尚未得出成功的结论。

任何人都可以告知我可能被误解了吗?

PS:我也尝试过使用列表而不是数据框,但这也没有用。我也参考了文档,但是在实现(https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.append.html)中看不到问题。

编辑:更新后的代码:tmp到df_tmp 这实际上并不会更新df_master,因为它显示为空白。 enter image description here

EDIT2:我已将df_master更改为似乎返回列表列表的列表。但是,对于Pandas Dataframe,它将立即返回一个空白____。

我不太了解为什么在以前的情况下我们似乎无法将另一个数据框附加到另一个数据框上。

EDIT3:如上所述,将df_master从数据帧更改为列表,使我可以根据以下图像在嵌套列表[xx,yy],[xx,yy]中接收数据。 但是,我现在需要找到一种合适的方法将其解压缩到数据框中。

enter image description here

1 个答案:

答案 0 :(得分:1)

如果您尝试获取列表并将其附加到数据帧的末尾,为什么不使用数据初始化df_tmp,如下所示:

df_master = pd.DataFrame([])

for i in PI_tags:
    df_tmp = pd.DataFrame(ReadPiValues(i, interval, start_date, end_date))
    df_master = df_master.append(df_tmp)