我需要根据所有列的不同列对数据框进行排序,并且我想使用循环来实现。所以我需要这样的东西:

for j in range(nC):

    Elab1 = Elab1.sort_values([j, 13])
    Elab1 = Elab1.reset_index(drop=True)


    for i in range(L_GI-1):


        if Elab1.at[i+1, j] == Elab1.at[i, j] :


            Elab1.at[i+1, j+nC] = Elab1.at[i, j+nC]


L_GInC分别是我的数据框的行数和列数:Elab1,而j和13是我想用作排序索引的数据框的列数位置。

虽然这适用于循环行,但不适用于列,因为我想使用方法at需要它们的名称。
有没有一种方法可以替代方法at,如我的代码所示使用?

最佳答案

只需使用iloc而不是at

Elab1.iloc[i+1, j] == Elab1.iloc[i,j]

10-07 16:06