我想按名称长度排序。似乎没有 key
参数 sort_values
所以我不确定如何完成这个。这是一个测试 df:
import pandas as pd
df = pd.DataFrame({'name': ['Steve', 'Al', 'Markus', 'Greg'], 'score': [2, 4, 2, 3]})
原文由 Alex 发布,翻译遵循 CC BY-SA 4.0 许可协议
使用 DataFrame.sort_values
我们可以将计算字符串长度的匿名 (lambda) 函数(使用 .str.len()
系列方法)传递给 key
参数:
df = pd.DataFrame({
'name': ['Steve', 'Al', 'Markus', 'Greg'],
'score': [2, 4, 2, 3]
})
print(df)
name score
0 Steve 2
1 Al 4
2 Markus 2
3 Greg 3
df.sort_values(by="name", key=lambda x: x.str.len())
name score
1 Al 4
3 Greg 3
0 Steve 2
2 Markus 2
原文由 Erfan 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答5.1k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
1 回答1.7k 阅读✓ 已解决
1 回答1.2k 阅读✓ 已解决
You can use
reindex
ofindex
ofSeries
created bylen
withsort_values
: