DataFrame.reindex()排序没用
时间: 2023-08-14 21:11:07 浏览: 67
您好!对于DataFrame.reindex()方法,它主要用于重新排序DataFrame的索引,并可根据需要插入缺失的标签。但是如果您发现使用reindex()方法后排序没有生效,可能是因为您没有将排序结果重新赋值给DataFrame。请确保在使用reindex()方法后,将返回的新DataFrame赋值给原始的DataFrame对象,以使排序生效。例如:
``` python
df = df.reindex(new_index).sort_values(by='column_name')
```
这样可以确保数据框按照指定的索引重新排序。
如果您仍然遇到问题,请提供更多的信息,我会尽力帮助您解决。
相关问题
DataFrame的.reindex()方法
在 Pandas 中,DataFrame 的 `.reindex()` 方法可以用于重新索引行或列。该方法会返回一个新的 DataFrame,新的 DataFrame 按照指定的索引重新排列行或列。
`.reindex()` 方法的语法如下:
```
df.reindex(index=None, columns=None, fill_value=None)
```
其中,`index` 参数用于指定新的行索引,`columns` 参数用于指定新的列索引,`fill_value` 参数用于指定缺失值的填充值。
如果 `index` 参数和 `columns` 参数都不指定,则返回原 DataFrame。如果 `index` 参数或 `columns` 参数中有一项不指定,则使用原 DataFrame 的索引。
例如,对于一个 DataFrame `df`,我们可以使用以下代码将其行索引重新排列:
```
new_df = df.reindex(index=[2, 0, 1])
```
以上代码将原 DataFrame `df` 的行索引重新排列为 `[2, 0, 1]`,返回一个新的 DataFrame `new_df`。
我们还可以使用以下代码将其列索引重新排列:
```
new_df = df.reindex(columns=['b', 'a', 'c'])
```
以上代码将原 DataFrame `df` 的列索引重新排列为 `['b', 'a', 'c']`,返回一个新的 DataFrame `new_df`。
在重新索引时,如果原 DataFrame 中有缺失值,则在重新索引后的 DataFrame 中,缺失值会用 `fill_value` 参数指定的值进行填充。
dataframe.sort
根据引用中提到的help(DataFrame.sort_values),可以看出在Python 3.7中,sort_values()方法的参数应该是无需指定column参数的。然而,在引用中的例子中,sort_values()方法却报错显示出现了一个不期望的关键字参数'column'。这可能是因为在这个例子中,sort_values()方法被错误地使用了column参数。
为了解决这个问题,您可以将sort_values()方法的参数改为正确的方式,即不需要指定column参数。这样应该就可以成功地对DataFrame进行排序了。
另外,根据引用中提到的DataFrame.groupby()方法的参数介绍,该方法并不适用于对DataFrame进行排序。因此,在解决排序问题时,您不需要使用groupby方法。
综上所述,您可以尝试使用以下代码对DataFrame进行排序:
marks.sort_values(ascending=False)
这应该可以解决您遇到的问题。
阅读全文