如何循环dataframe列以对dataframe进行迭代排序

2024-10-03 00:25:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要根据不同的列对我的数据帧进行排序,对于所有的列,我想用一个循环来完成。所以我需要这样的东西:

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,如我的代码所示使用?你知道吗


Tags: 数据方法inforindex排序rangesort
2条回答

已解决:

替代品

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


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

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

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

和替代品

[j, 13] 

[columns_names_array[j], "constant_column_name"]

在哪里

columns_names_array = [column_name in Elab1.columns()]

最好的答案是@LeoE,它为我指明了正确的方向。你知道吗

只需使用iloc而不是at

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

相关问题 更多 >