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

请创建一个新的问题,并在问题正文中添加,以清楚说明。请将熊猫升级到最新版本,以便我工作顺利