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

Pandas DataFrame转元组列表时数值后出现小数点的原因及解决方法

小数点来源说明

你的DataFrame中quantity列的存储类型为浮点型(float),整数值的浮点型数据在输出展示时会默认携带小数点后缀,你看到的210.本质是210.0的简化显示形式。

解决方法

你可以在生成结果前主动将quantity列转换为整数类型即可去除小数点,修改后的代码如下:

car_model_quantity_filter = dataframe[(dataframe['car_model'] == car_model ) & (dataframe['quantity'] >= quantity)].sort_values(by=['quantity'], ascending=False, inplace=False)
# 新增列类型转换逻辑
car_model_quantity_filter['quantity'] = car_model_quantity_filter['quantity'].astype(int)
car_store_quantity_tuple = car_model_quantity_filter[['car_store','quantity']].to_records(index=False)
return car_store_quantity_tuple 

如果你的业务场景中quantity本身只能是整数,也可以在读入数据阶段就直接指定该列为整数类型,避免后续每次转换:

# 以读取csv文件为例,读入时就指定列类型
import pandas as pd
dataframe = pd.read_csv("你的文件路径", dtype={"quantity": int})

更简洁的实现方案

你可以使用pandas的query方法简化筛选逻辑,可读性更高,同时替换to_records为itertuples直接生成原生Python元组,性能表现更优:

filtered_df = dataframe.query(f"car_model == @car_model and quantity >= @minimum_quantity")\
                       .sort_values(by="quantity", ascending=False)
filtered_df["quantity"] = filtered_df["quantity"].astype(int)
return list(filtered_df[["car_store", "quantity"]].itertuples(index=False, name=None))

内容的提问来源于stack exchange,提问作者jimmy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 18:30:04