0

假设我们有两个数据帧,一个是另一个的一部分。

如果我在较小的 DF 上进行迭代,如何在较大的 DF 中找到索引,然后找到它所在的行?

所以它会是这样的:

for idx in smaller.index:
    loc = bigger.ix[ix]**.row_location???**
    while not fin:
        looking_for_something = bigger.iloc[loc]
        if looking_for_something != criteria:
            loc += 1
        else:
            fin = 1

我确定这很简单,但我似乎无法找到执行此操作的方法。

4

1 回答 1

0

如果smaller是 的一部分bigger,您在其中寻找的所有信息不是bigger已经在 中可用了smaller吗?

如果没有,可能有一些列 inbigger不存在于smaller. (也许smaller应该已经定义为包含这些列?)在任何情况下,您都可以使用pd.merge或将其中的行与共享相同索引的smaller.join(bigger, how='inner', ...)行进行匹配。这将一举完成您正在寻找的所有比赛biggersmaller

for idx in smaller.index:
    loc = bigger.ix[ix]**.row_location???**

而且,它会更快。一般来说,逐行执行操作并不是获得结果的最快方法。最好考虑连接或合并或 groupbys 或一次在整个数组上工作的某些此类操作。

于 2013-04-28T21:56:16.010 回答