我有一个DataFrame,其索引类型为datetime对象。我最终将使用HDFStore.append将此DataFrame写入HDF5文件。我添加了很多需要写入此HDF5文件的行。如果我为每一行使用HDFStore.append,这需要太长时间。如果我首先收集DataFrame中的所有内容,我的内存不足。所以我需要间歇性地写入HDF5。
df = DataFrame([['Bob','Mary']], columns=['Boy', 'Girl'], index=[datetime.today()])
现在我想在此同时使用相同的索引添加另一行
row = ['John', 'Sue']
使用.loc或.ix替换现有的行
df.loc[datetime.today()] = row
使用追加作品,但为了我的目的是太慢了
new_df = DataFrame([row], columns=df.columns, index=[datetime.today()])
df.append(new_df)
有更好的方法吗?
答案 0 :(得分:1)
创建一个列表列表,并使其数据框的速度快于追加。由于您已经在创建小块的数据框,为什么不一次创建它:
In [1303]: pd.DataFrame([[0,1], [1,2], [2,3]], index=[pd.datetime.today()] * 3)
Out[1303]:
0 1
2015-05-07 09:02:30.327473 0 1
2015-05-07 09:02:30.327473 1 2
2015-05-07 09:02:30.327473 2 3