python - 如何在不更改熊猫中其他列的情况下对一列进行排序?
问题描述
示例:当前 df 看起来像:
df=
A B
1 5
2 6
3 8
4 1
我希望得到的 df 是这样的(B 已排序,A 保持不变):
df=
A B
1 8
2 6
3 5
4 1
解决方案
你需要打破 Pandas 的内部安全机制——aligning by index
它负责处理data consistency
. 所以分配一维 Numpy 数组或一个普通的 Python 列表就可以了,因为它们都没有索引,所以 Pandas 不能进行对齐:
df['B'] = df['B'].sort_values(ascending=False).values
或者
df['B'] = df['B'].sort_values(ascending=False).tolist()
两者都产生:
In [77]: df
Out[77]:
A B
0 1 8
1 2 6
2 3 5
3 4 1
推荐阅读
- python - 如何映射列以在 spark sql 数据框中创建新列?
- ios - MSAL 是否可用于在 ADFS for iOS 移动应用程序上使用基于证书的身份验证来实施 SSO?
- build - kdiff3 可下载的“kdiff3-1.8.5-windows-64-cl.exe” - 什么是“-cl”?
- python-3.x - 如何将数据写入 Django 临时文件?
- lighthouse - 如何修复 Lighthouse 错误:“警告:链接不可抓取”
- mysql - 如何在 MYSQL 的 INSERT 中选择 MAX() 以自动增加 customerNumber
- capybara - Capybara ingore 在指定断言的“范围内”
- javascript - WDIO - 本地和远程机器中的 isDisplayed() 方法差异
- android - 应用程序未部署在 Google Play 控制台中
- angular - Angular 10 Fullcalendar - 如何编辑事件标题、内容以及如何删除事件?