我有一个名为trg_data
的pandas数据框来收集我批量生产的数据。每个批处理由子例程生成,作为较小的数据帧df
,具有相同的列数但行数较少,我希望将df
中的值插入到trg_data
的新行中每次都有位置。
但是,当我使用以下语句时,df总是插在顶部。 (即行0到len(df))。
trg_data.iloc[trg_pt:(trg_pt + len(df))] = df
我猜,但我认为原因可能是即使切片指示了所需的行,它也会使用df中的索引来决定放置数据的位置。
作为测试我发现我可以在正确的位置插入一个ndarray没问题:
trg_data.iloc[trg_pt:(trg_pt + len(df))] = np.ones(df.shape)
如何让它忽略df中的索引并将数据插入到我想要的位置?或者是否有完全不同的方法来实现这一目标?在一天结束时,我只想创建数据帧trg_data,然后在最后保存到文件。我沿着这条路走下去,因为似乎没有办法轻易附加到现有的数据帧。
我已经在这工作了一个多小时,我无法弄清楚谷歌要找到正确的答案!
答案 0 :(得分:0)
我想我可能有答案(我以为我已经尝试了这个,但显然没有):
trg_data.iloc[trg_pt:(trg_pt + len(df))] = df.values
不过,我对其他建议持开放态度。可能有更好的方法将数据添加到数据框中。
答案 1 :(得分:0)
我这样做的方法是将所有中间数据帧保存在一个数组中,然后将它们连接在一起
import pandas as pd
dfs = []
# get all the intermediate dataframes somehow
# combine into one dataframe
trg_data = pd.concatenate(dfs)
答案 2 :(得分:0)
两个
trg_data = pd.concat([df1, df2, ... dfn], ignore_index=True)
和
trg_data = pd.DataFrame()
for ...: #loop that generates df
trg_data = trg_data.append(df, ignore_index=True) #you can reuse the name df
为你工作。