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

创建英里转公里函数遇TypeError:无法将字符串与浮点数相乘

解决英里转公里函数的TypeError问题

问题根源

你触发错误的核心原因是调用函数时传入了列名字符串'Distance',但函数期望接收的是实际的数值型数据列(比如pandas的Series对象)。字符串属于序列类型,无法和浮点数1.609344相乘,这就是报错can't multiply sequence by non-int of type 'float'的原因。你修改返回语句的类型转换完全无效,因为错误发生在计算km = miles * MIc这一步,代码根本没执行到返回逻辑。

解决方案

1. 正确传入数据列

假设你的数据存储在名为df的pandas DataFrame中,调用函数时要传入实际的列数据,而不是列名:

# 假设df是你的数据框,包含Distance列
result_df = miles_to_KM(df['Distance'])

2. (可选)给函数添加参数校验

为了避免后续再传错参数,可以在函数开头加入类型检查,抛出更明确的错误提示:

import pandas as pd

def miles_to_KM(miles):
    # 校验输入是否为数值型序列
    if not isinstance(miles, pd.Series) or not pd.api.types.is_numeric_dtype(miles):
        raise TypeError("请传入pandas数值类型的Series(即DataFrame的数值列),而不是字符串或其他类型")
    
    MIc = 1.609344
    km = miles * MIc
    return pd.DataFrame({'km': km}).fillna(0)

这样如果再误传字符串,会得到更清晰的错误提示,方便快速定位问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 05:25:14