假设我们有两个数据帧,其中一个是另一个数据帧的切片。
如果我正在迭代较小的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
我确信它很简单,但我似乎找不到这样做的方法。
答案 0 :(得分:0)
如果smaller
是bigger
的一部分,那么bigger
中smaller
中找到的所有信息都不是已经可用吗?
如果没有,bigger
中可能没有smaller
中的某些列。 (或者smaller
可能已定义为包含这些列?)无论如何,您可以使用pd.merge
或smaller.join(bigger, how='inner', ...)
将bigger
中的行与行进行匹配在smaller
中共享相同的索引。这将一举完成你正在寻找的所有比赛
for idx in smaller.index:
loc = bigger.ix[ix]**.row_location???**
而且,它会更快。通常,逐行执行操作不是获得结果的最快方法。最好考虑连接或合并或groupbys或一次在整个数组上运行的某些操作。