我有一个包含整数和字符串的列的数据框:
>>> df = pd.DataFrame({'a':[2,'c',1,10], 'b':[5,4,0,6]})
>>> df
a b
0 2 5
1 c 4
2 1 0
3 10 6
我想按列a对数据帧进行排序,分别用字符串处理字符串和整数:
>>> df
a b
1 c 4
2 1 0
0 2 5
3 10 6
...但Python不允许将整数与字符串进行比较。
TypeError: unorderable types: int() > str()
如果我先将所有整数转换为字符串,我就得不到我想要的东西:
>>> df.a = df.a.astype(str)
>>> df.sort(columns='a')
a b
0 1 0
3 10 6
2 2 5
1 c 4
有没有人知道一种单线方式告诉Pandas我希望它首先对字符串进行排序,然后是整数,而不先将数据帧分成几部分?