python - pandas lexsort 是否取决于排序顺序?
问题描述
我在 col2 和 col3 上创建了 2 个索引并对它们进行了排序。
import pandas as pd
d=pd.DataFrame([[1,4,4], [3,4,5], [2,4,5], [2,3,5],], columns=['col1','col2','col3'])
d.set_index(['col2', 'col3'], inplace=True)
d.sort_index(ascending=[False, True], inplace=True)
print('lexsort when ascending=[False, True] -> ' + str(d.index.is_lexsorted()))
print(d.loc[(4, 5)])
d.sort_index(ascending=[True, True], inplace=True)
print('lexsort when ascending=[True, True] -> ' + str(d.index.is_lexsorted()))
print(d.loc[(4, 5)])
我得到以下结果:
lexsort when ascending=[False, True] -> False
PerformanceWarning: indexing past lexsort depth may impact performance.
print(d.loc[(4, 5)])
col1
col2 col3
4 5 3
5 2
lexsort when ascending=[True, True] -> True
col1
col2 col3
4 5 3
5 2
[Finished in 0.5s]
Q1:pandas lexsort 是否依赖排序顺序?
Q2:为什么性能警告只针对升序=[False, True]
解决方案
推荐阅读
- ip - 怎么给电脑设置静态ip
- python - 转换为列表后枚举对象为空
- python-3.x - twoSum 问题的蛮力方法不起作用
- spartacus-storefront - 如何禁用斯巴达克斯默认呼叫
- excel - Excel - 在 FilterXML 中添加 Excel 公式
- excel - 选中一个复选框时如何取消选择所有其他复选框
- google-cloud-platform - Azure 策略的 GCP 等效项
- azure - 为 Azure Key Vault 配置灾难恢复和自动故障转移?
- javascript - Bot 在用户加入时不会向用户发送消息
- java - Eclipse 中的 Maven 构建任务问题 - StackOverflow 和 DeferredTypeMap 的递归调用?