如何在Python中将含分数的DataFrame列转换为小数
解决方案
1. 提取分数部分
直接用str.split难以精准定位分数段,建议用正则提取的方式,从Rule列中抓取数字/数字格式的分数字符串:
df['fraction'] = df['Rule'].str.extract(r'(\d+/\d+)')
2. 分数转小数
对提取到的分数字符串拆分分子分母,转换为数值后做除法运算:
df['Rule Final'] = df['fraction'].apply(lambda x: int(x.split('/')[0]) / int(x.split('/')[1]))
完整代码示例
import pandas as pd # 构造示例DataFrame data = { 'ID': [1233, 1235, 1236], 'Rule': ['M-4/32', 'M-8/32', 'M-2/32'], 'Postion': [516.00, 716.00, 816.00] } df = pd.DataFrame(data) # 提取分数 df['fraction'] = df['Rule'].str.extract(r'(\d+/\d+)') # 计算小数结果 df['Rule Final'] = df['fraction'].apply(lambda x: int(x.split('/')[0]) / int(x.split('/')[1])) # 可选:删除中间辅助列 df = df.drop('fraction', axis=1) print(df)
运行后输出的结果会完全匹配你预期的表格样式,Rule Final列会呈现对应的小数数值。
内容的提问来源于stack exchange,提问作者Jay
相关产品推荐
相关产品推荐

