我有一个混合数据类型的Pandas DataFrame,包含字符串和整数值。我想按多个列
问题在于目标列列表可能包含字符串和整数列,例如
Price
和 Name
降序排序此DataFrame的值。 字符串值(即Name
)应按字母顺序排序,或者实际上可以完全忽略,因为最重要的是数字值。问题在于目标列列表可能包含字符串和整数列,例如
target_columns = ["Price","Name"]
。d = {'1': ['25', 'AAA', 2], '2': ['30', 'BBB', 3], '3': ['5', 'CCC', 2], \
'4': ['300', 'DDD', 2], '5': ['30', 'DDD', 3], '6': ['100', 'AAA', 3]}
columns=['Price', 'Name', 'Class']
target_columns = ['Price', 'Name']
order_per_cols = [False] * len(target_columns)
df = pd.DataFrame.from_dict(data=d, orient='index')
df.columns = columns
df.sort_values(list(target_columns), ascending=order_per_cols, inplace=True)
目前,这段代码会出现以下错误信息:
TypeError: 'str'和'int'之间不支持'<'操作
期望的输出结果:
Price Name Class
300 DDD 2
100 AAA 3
30 DDD 3
30 BBB 3
25 AAA 2
5 CCC 2
df = df.sort_values('Price', ascending=False)
呢? - Erfan