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

使用Pandas按年龄组计算平均骑行时长的问题排查

问题解决:按年龄组计算平均骑行时长失败的修复方案

问题根源

你的核心问题是Trip_in_min列类型为object,说明该列存在非数值内容(比如无效字符串、特殊字符)。小数据集刚好没有这类脏数据,所以能正常计算均值;但16K+行的完整数据集包含这类数据,导致mean()计算失效,仅返回分组键,同时触发FutureWarning。

修复步骤

1. 加载数据并清洗Trip_in_min列

读取CSV时直接处理目标列的类型转换,把无法转为数值的内容设为NaN:

import pandas as pd

# 读取文件时,将Trip_in_min转为数值,无效值设为NaN
file = pd.read_csv("file.csv", converters={"Trip_in_min": lambda x: pd.to_numeric(x, errors='coerce')})

# 可选:删除Trip_in_min为NaN的无效行(根据业务需求决定是否保留)
# file = file.dropna(subset=["Trip_in_min"])

2. 计算各年龄组平均骑行时长

现在Trip_in_min是数值类型,即可正常执行分组均值计算:

# 按年龄组分组,计算平均骑行时长,保留Age_Groups为列
avg_trip_by_age = file.groupby('Age_Groups', as_index=False)['Trip_in_min'].mean()
# 重命名列名提升可读性
avg_trip_by_age.rename(columns={"Trip_in_min": "Avg_Trip_in_min"}, inplace=True)

print("各年龄组平均骑行时长:")
print(avg_trip_by_age)

3. 整合完整统计代码

把原有统计逻辑和新的均值计算整合,代码更清晰:

import pandas as pd

# 加载并清洗数据
file = pd.read_csv("file.csv", converters={"Trip_in_min": lambda x: pd.to_numeric(x, errors='coerce')})
# 可选:移除Age_Groups或Trip_in_min为空的无效行
# file = file.dropna(subset=["Age_Groups", "Trip_in_min"])

# 统计各年龄组骑行次数
trips_summary = file.Age_Groups.value_counts().reset_index()
trips_summary.columns = ["Age_Groups", "Trip_Count"]
print("各年龄组骑行次数:")
print(trips_summary)
print()

# 统计TOP20热门站点
popular_stations = file.Start_Station_Name.value_counts().head(20).reset_index()
popular_stations.columns = ["Start_Station_Name", "Trip_Count"]
print("TOP20热门站点:")
print(popular_stations)
print()

# 计算各年龄组平均骑行时长
avg_trip_by_age = file.groupby('Age_Groups', as_index=False)['Trip_in_min'].mean()
avg_trip_by_age.rename(columns={"Trip_in_min": "Avg_Trip_in_min"}, inplace=True)
print("各年龄组平均骑行时长:")
print(avg_trip_by_age)

额外说明

  • errors='coerce'会将无法转换为数值的内容转为NaN,Pandas的mean()方法默认会忽略NaN值,不影响均值计算
  • FutureWarning通常是由于Pandas版本兼容问题,建议升级到较新版本的Pandas,或按照警告提示调整语法

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 16:46:27