pandas-如何替换数据框中的行

pandas-how can I replace rows in a dataframe

我是 Python 的新手,尝试替换行。

我有一个数据框,例如:

X Y
1 a
2 d
3 c
4 a
5 b
6 e
7 a
8 b

我有两个问题:

1- 如何将第 2 行替换为第 5 行,例如:

X Y
1 a
5 b
3 c
4 a
2 d
6 e
7 a
8 b

2-如何将第6行放在第3行之上,例如:

X Y
1 a
2 d
6 e
3 c
4 a
5 b
7 a
8 b

第一次使用 DataFrame.iloc,python 从 0 开始计算,因此 select 第二行使用 1,第五次使用 4 :

df.iloc[[1, 4]] = df.iloc[[4, 1]]
print (df)
   X  Y
0  1  a
1  5  b
2  3  c
3  4  a
4  2  d
5  6  e
6  7  a
7  8  b

然后 rename 索引以上值,此处 1 并仅使用稳定排序 mergesort:

df = df.rename({5:1}).sort_index(kind='mergesort', ignore_index=True)
print (df)
   X  Y
0  1  a
1  2  d
2  6  e
3  3  c
4  4  a
5  5  b
6  7  a
7  8  b