Python 按多列对dataframe排序,同时忽略大小写
我想按多个列对数据帧进行排序,如下所示:Python 按多列对dataframe排序,同时忽略大小写,python,pandas,dataframe,sorting,case-insensitive,Python,Pandas,Dataframe,Sorting,Case Insensitive,我想按多个列对数据帧进行排序,如下所示: df.sort_values( by=[ 'A', 'B', 'C', 'D', 'E' ], inplace=True ) 然而,我发现python首先对大写值进行排序,然后对小写值进行排序 我试过这个: df.sort_values( by=[ 'A', 'B', 'C', 'D', 'E' ], inplace=True, key=lambda x: x.str.lower() ) 但我得到了这个错误: TypeError: sort_valu
df.sort_values( by=[ 'A', 'B', 'C', 'D', 'E' ], inplace=True )
然而,我发现python首先对大写值进行排序,然后对小写值进行排序
我试过这个:
df.sort_values( by=[ 'A', 'B', 'C', 'D', 'E' ], inplace=True, key=lambda x: x.str.lower() )
但我得到了这个错误:
TypeError: sort_values() got an unexpected keyword argument 'key'
如果可以的话,我会将所有列都转换为小写,但我希望它们保持原样
有什么提示吗?如果检查文档-为了正确工作,需要升级pandas更高版本,如pandas 1.1.0
:
键-可调用,可选
排序前对值应用键函数。这与内置sorted()函数中的键参数类似,但显著的区别在于此键函数应该矢量化。它应该期望一个序列,并返回一个与输入形状相同的序列。它将独立应用于中的每个列
版本1.1.0中新增。
样本:
df = pd.DataFrame({
'A':list('MmMJJj'),
'B':list('aYAbCc')
})
df.sort_values(by=[ 'A', 'B'], inplace=True, key=lambda x: x.str.lower())
print (df)
A B
3 J b
4 J C
5 j c
0 M a
2 M A
1 m Y
请创建一个新的问题,并在问题正文中添加,以清楚说明。请将熊猫升级到最新版本,以便我工作顺利