我正在尝试使用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个记录,只有一个。
答案 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