Python在两个不同长度的数据帧之间高效地循环

2024-05-13 02:57:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个不同长度的数据帧(df,df1)。它们有一个相似的标签"collo_number"。我想在第二个数据帧中搜索第一个数据帧中的每个collo_number。问题是,第二个日期框包含多个行,每个collo_nummer对应不同的日期。所以我想对这些日期求和,并将其添加到第一个数据库的新列中。你知道吗

我现在使用一个循环,但它是相当缓慢,必须执行这项行动的所有7天在一个星期。有没有办法获得更好的表现?我尝试了多种解决方案,但不断得到的错误,我不能使用等号为两个不同长度的数据库。非常感谢您的帮助!这是一个例子,说明什么是工作,但有一个相当糟糕的表现。你知道吗

df5=[df1.loc[(df1.index == nasa) & (df1.afleverdag == x1) & (df1.ind_init_actie=="N"), "aantal_colli"].sum() for nasa in df.collonr]

Tags: 数据数据库numberdf错误标签解决方案loc
1条回答
网友
1楼 · 发布于 2024-05-13 02:57:16

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

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()]

相关问题 更多 >