如何将一个数据框中的值添加到另一个数据框中,忽略行索引

时间:2016-02-22 00:12:40

标签: python pandas dataframe setting

我有一个名为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,然后在最后保存到文件。我沿着这条路走下去,因为似乎没有办法轻易附加到现有的数据帧。

我已经在这工作了一个多小时,我无法弄清楚谷歌要找到正确的答案!

3 个答案:

答案 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 

为你工作。