一次处理一行的 Pandas 数据帧时出现问题



我正在尝试使用 iloc 一次处理一行的数据帧。我有一个从数据库中读入的排序帧:

branch  animal  owner
00177   cat     Dave
00177   lion    Peter
00177   dog     Dave
00200   dog     Mary
00200   dog     Fred
00300   horse   Doug
00400   cat     Dave
我想

处理每组分支,所以我想如果我将每个 grpnum 与下一个进行比较。 像这样:

for R in 0 to 7
    while [df.iloc[[R],[0]] == df.iloc[[R+1],[0]]
        do something
        R = R + 1

除了我得到这个错误:

ValueError: Can only compare identically-labeled DataFrame objects

我不能以这种方式处理数据帧吗?如何逐行处理数据帧?我不依赖于使用数据帧对象,它只是方便。此示例显示具有 4 个不同值的 Branch。实际上有一千多个不同的值,同一个分支最多可以包含三十条记录,也只能包含一条。

当你做这种比较时,索引也会被比较

>>> df.iloc[[1],[0]]
branch
1  00177
>>> df.iloc[[0],[0]]
branch
0  00177

在本例中分别为 1 和 0

您可以在此处查找更多详细信息

您可以尝试不同的方法来解决问题,例如

for i in range(7):
    if df["branch"][i] == df["branch"][i+1]:
        do something
    else:
        pass

最新更新