一次处理一行Pandas Dataframe的问题

时间:2018-03-22 08:46:32

标签: python 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与下一个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

我不能以这种方式处理DataFrame吗?如何逐行处理DataFrame?我不喜欢使用数据帧对象,这很方便。 此示例显示具有4个不同值的Branch。实际上有超过一千个不同的值,同一个分支最多可以包含30个记录,只有一个。

1 个答案:

答案 0 :(得分:1)

当您进行此类比较时,还会比较索引

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

,在这种情况下分别为1和0

您可以查找更多详细信息here

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

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