You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何清理Pandas的Score列并转换为整数以实现排名操作

解决Pandas Score列数据清理与排名问题

数据清理核心思路

  • 先统一处理字符串格式:将数值中的逗号替换为小数点,适配Python的数值识别规则
  • 转换为数值类型后再转为整数,完成数据标准化
  • 清理完成后即可正常执行排名操作

具体代码实现

import pandas as pd

# 示例DataFrame(模拟你的数据结构)
df = pd.DataFrame({'Score': ['100', '200', '300', '500,00', '800,00', '610,00']})

# 清理数据:替换逗号为小数点→转浮点数→转整数
df['Cleaned_Score'] = df['Score'].str.replace(',', '.').astype(float).astype(int)

# 执行排名(按分数降序,相同分数取最小排名,可按需调整method参数)
df['Rank'] = df['Cleaned_Score'].rank(ascending=False, method='min')

print(df)

代码说明

  • str.replace(',', '.'):把带逗号的字符串转换成Python可识别的浮点数格式
  • astype(float).astype(int):先转浮点数适配带小数的格式,再转整数自动去除.00后缀,得到纯整数
  • rank()参数:ascending=False实现从高分到低分排名,method='min'表示相同分数取最小排名,可替换为'max'、'dense'等满足不同排名规则

优化方案(针对小数固定为00的场景)

如果确认所有带逗号的数值小数部分都是00,可以直接截断冗余部分,跳过浮点数转换:

df['Cleaned_Score'] = df['Score'].str.replace(',00', '').astype(int)

这种方式效率更高,适合数据格式固定的场景

内容的提问来源于stack exchange,提问作者Jheison G Salazar Munoz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 10:55:04