将使用.sort_values排序后的df的index重新排序
时间: 2023-12-10 07:40:37 浏览: 26
可以使用`df.sort_values().index`来获取排序后的索引,并将其赋值给原始数据框的索引,实现重新排序。代码示例如下:
```python
import pandas as pd
# 创建一个示例数据框
df = pd.DataFrame({'A': [3, 2, 1], 'B': [6, 5, 4]})
# 按照列'A'进行降序排序
df = df.sort_values('A', ascending=False)
# 获取排序后的索引
new_index = df.index
# 将原始数据框的索引重新排序
df = df.reindex(new_index)
print(df)
```
运行结果如下:
```
A B
0 3 6
1 2 5
2 1 4
```
相关问题
将使用.sort_values排序后的df的索引重新排序
可以使用`reset_index`方法来重新排序索引,例如:
```python
import pandas as pd
df = pd.DataFrame({
'name': ['Alice', 'Bob', 'Charlie', 'David'],
'age': [25, 30, 35, 40],
'score': [80, 70, 90, 85]
})
# 按照分数降序排序
df = df.sort_values(by='score', ascending=False)
# 重新排序索引
df = df.reset_index(drop=True)
print(df)
```
输出结果为:
```
name age score
0 Charlie 35 90
1 David 40 85
2 Alice 25 80
3 Bob 30 70
```
其中,`reset_index`方法的`drop`参数表示是否将原来的索引删除,默认为False。这里我们设置为True,即删除原来的索引。重新排序后,索引就变成了0、1、2、3。
df.sort_index排序无效
如果 `df.sort_index()` 排序无效,可能是因为你没有指定要按哪个轴进行排序。在 Pandas 中,`sort_index()` 默认按行索引排序,但也可以通过 `axis` 参数指定按列索引排序。例如,要按列索引排序,可以使用以下代码:
```
df.sort_index(axis=1)
```
另外,还要注意是否有重复的行或列索引。如果有重复的索引,排序可能会出现问题。在这种情况下,你可以使用 `sort_values()` 方法按指定列进行排序。