排序后的pandas dataframe根据格式返回不同的值

2024-05-23 13:24:59 发布

您现在位置:Python中文网/ 问答频道 /正文

当我按“总购买价值”降序排序此数据框而不格式化它时,它会正确返回前五行:

totalVal = topItems["Price"].sum()
topFiveItems = pd.DataFrame({
    "Item Name": itemNames,
    "Purchase Count": purchaseCount,
    "Item Price": itemPrices.map("${:.2f}".format),
    "Total Purchase Value": totalVal
})
topFiveItems.sort_values(ascending = False, by = "Total Purchase Value").head()

Code without formatting & result

但当我对“总购买价值”应用格式时,由于某些原因,排序会发生变化:

^{pr2}$

Code with formatting & result

有人能告诉我调试这个吗?在

提前感谢您的帮助


Tags: 数据排序valuecoderesultpurchaseitemprice
2条回答

当您更改格式以包含“$”时,您正在将数据类型更改为字符串,因此不再按数字降序排序,而是按字母降序排序,因此“9”在“1”之前。在

chet-the-wizard可能是正确的,请验证之前和之后的数据类型

topFive.dtypes 

会告诉你数据类型是什么

相关问题 更多 >