Python 向上移动行并重置数据帧的索引

Python 向上移动行并重置数据帧的索引,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个包含以下列的数据框架。需要按tr_日期排序,并将第6个索引行移动到第1个索引 original datafarame index tr_date val_date des con cr dr bal 0 05-06-2020 05-06-2020 JH876875 NEFT 0 500 500 1 02-07-2020 02-07-2020 45546 MPS 100 0

我有一个包含以下列的数据框架。需要按tr_日期排序,并将第6个索引行移动到第1个索引

original datafarame

index tr_date      val_date    des         con    cr   dr  bal
0      05-06-2020   05-06-2020  JH876875    NEFT    0   500 500
1      02-07-2020   02-07-2020  45546       MPS    100  0   400
2      02-07-2020   02-07-2020  45546       IMPS    20  0   380
3      22-07-2020   20-07-2020  AASADD      with    200 0   -320
4      28-07-2020   15-07-2020  876876      withdr  0   300 -20
5      03-08-2020   01-08-2020  BCGFD       NEFT    200 0   -220
6      02-07-2020   02-09-2020  23          man     500 0   -120

Expected output:

index tr_date       val_date    des         con    cr   dr  bal
0     05-06-2020    05-06-2020  JH876875    NEFT    0   500 500
1     02-07-2020    02-09-2020  23          man     500 0   -120
2     02-07-2020    02-07-2020  45546       MPS    100  0   400
3     02-07-2020    02-07-2020  45546       IMPS    20  0   380
4     22-07-2020    20-07-2020  AASADD      with    200 0   -320
5     28-07-2020    15-07-2020  876876      withdr  0   300 -20
6     03-08-2020    01-08-2020  BCGFD       NEFT    200 0   -220

此代码用于更改行:

df.iloc[6], df.iloc[1] = df.iloc[1], df.iloc[6]

此代码用于更改行:

df.iloc[6], df.iloc[1] = df.iloc[1], df.iloc[6]
问候Jan

这应该可以:

df=df.sort_values(by='tr_date').reset_index()
如果要对其他列进行二次排序,只需按参数添加它们(例如
by=['tr_date','des']

这应该可以:

df=df.sort_values(by='tr_date').reset_index()

如果您想对其他列进行二次排序,只需按参数添加它们(例如
by=['tr_date','des']

它遵循什么规则?是按tr_日期(升序)排序,然后按val_日期(降序)排序吗?@vincent仅按tr_日期排序(升序)。是的,但将第6行移动到第1行?为什么?根据您构建数据帧的方式,您希望放在第一位的特定行并不总是放在第六位。这就是为什么我建议用一个规则来处理这个问题,比如“我想要在第一个位置的行是具有XXX条件的行”。我想要在第一个位置的行是具有cr的行=0在这种情况下,我建议不要遵循下面的答案,而是寻找“如何根据列值将一行放在第一个位置”或类似的内容它遵循什么规则?是按tr_日期(升序)排序,然后按val_日期(降序)排序吗?@vincent仅按tr_日期排序(升序)。是的,但将第6行移动到第1行?为什么?根据您构建数据帧的方式,您希望放在第一位的特定行并不总是放在第六位。这就是为什么我建议用一个规则来处理这个问题,比如“我想要在第一个位置的行是具有XXX条件的行”。我想要在第一个位置的行是具有cr的行=0在这种情况下,我建议不要遵循下面的答案,而是寻找“如何基于列值将行置于第一位置”或类似的内容