Python pandas通过两个不同长度的数据帧循环高效

时间:2016-06-09 13:02:18

标签: python pandas

我有两个不同长度的数据帧(df,df1)。他们共享一个类似的标签DataType。我想在第一个数据帧中为每个"collo_number"搜索第二个数据帧。问题是第二个日期框架包含每个collo_number的不同日期的多行。所以我想总结这些日期,并将其添加到第一个数据库的新列中。

我现在使用循环,但速度相当慢,必须在一周内执行此操作7天。有没有办法获得更好的表现?我尝试了多个解决方案,但不断得到错误,我不能使用两个数据库具有不同长度的等号。真的很感激帮助!这是一个有效的例子,但表现相当糟糕。

collo_nummer

1 个答案:

答案 0 :(得分:0)

您的描述有点模糊(因此我的评论)。首先,您要做的是选择要搜索的数据框的行:

dftmp = df1[(df1.afleverdag==x1) & (df1.ind_init_actie=='N')]

这样你就不会为循环中的每个项目执行此操作。 其次,使用.groupby

newseries = dftmp['aantal_colli'].groupby(dftmp.index).sum()  
newseries = newseries.ix[df.collonr.unique()]