仅使用最后添加的值打印Pandas DataFrame

时间:2018-04-03 11:49:08

标签: python python-3.x pandas

我正在使用Python从网上收集数据并将数据附加到pandas数据帧。

我想在每次附加dos命令提示符时查看更新的数据帧。这就是我目前正在做的事情:

for i in range(0,len(Record_files)):
    os.system('cls')
    with pd.option_context('display.max_rows', None, 'display.max_columns', None,'expand_frame_repr', False):
        print(Database)

由于Database太大,因此大部分时间都会滚动,而不仅仅是查看上次更新的条目。

例如:

让初始数据帧输出为

    Time       Temperature
  12:34 PM         45 C
  12:37 PM         42 C

现在,当附加新数据时,我希望将其打印为:

    Time       Temperature
  12:34 PM         45 C [old]
  12:37 PM         42 C [old]
  12:42 PM         39 C [new]

我希望只有[new]条目在排队时打印,而其他[旧]条目应保留在屏幕上。我目前使用os.system(' cls')为每次更新清除屏幕的方法的问题是,当列表超过终端窗口的长度时,它继续滚动并且它似乎无用

1 个答案:

答案 0 :(得分:0)

如果要在两个帧中维护唯一索引,则可以使用old_df的索引对new_df进行子集化。

假设new_df是你追加的数据框架。

old_df = old_df.append(new_df)

现在您只想查看更新的行:

old_df.iloc[new_df.index, :]

如果new_df太大而无法放在屏幕上,则无法保证屏幕仍无法滚动!你可以编写一个带有用户输入的for循环,在输入一些字符串时打印一批行,以50行的方式打印new_df。