如果单元格[2,5]不是pandas中的单元格[5,5](不是值而是单元格)

时间:2015-07-29 15:11:49

标签: python pandas cells xlrd

我正在使用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?

2 个答案:

答案 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在子数据框上计算