我正在使用Pandas,我正在将excel电子表格转换为数据框,我正在尝试执行以下操作:
if RowCol[2,5] is not RowCol[5,5]:
calculation
现在我的数据框叫做z,我有以下内容:
if z.iloc[2,5] != z.iloc[5,5]:
calculation
然而,这不起作用,因为它考虑了行col的值。如果row,col 2,5是10并且row,col 5,5是10那么计算将不会运行,而实际上我希望它运行。我不希望计算运行的唯一时间是行col是5,5。
我知道我可以使用iloc获取值,但我不关心值,我只是想要它,如果我们不在行,col [5,5]那么计算运行但是如果我们点击在数据帧中的row,col [5,5]然后计算不运行,但仅对row,col [5,5]运行不同的计算。有谁知道使用什么功能,我不认为我使用loc?
答案 0 :(得分:0)
我相信,既然你已经在数据框架上进行迭代,那么最好只跟踪你当前的位置。 df.iterrows()
会跟踪您的索引。
for index, row in df.iterrows():
rownum = 1
for cell in row:
if index==5 and rownum==5:
do_stuff()
rownum+=1
答案 1 :(得分:0)
因为你只关心这一行(似乎你已经修复了第5列)
for index in range(len(df)):
if row == 5:
continue
else:
myfunction()
如果您不想循环,可以执行
inds = range(len(df))
inds.remove(5)
df_not5 = df_not5.ix[ df.index[inds], ]
并且hen在子数据框上计算