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

将Parquet文件转Pandas后求列均值报错,如何处理含"Age"的行?

解决Parquet转DataFrame后的数值转换与行过滤问题

咱们先拆解你遇到的两个问题,再一步步给出具体解决办法:

第一个错误:数值转换失败(TypeError: Could not convert...)

这个错误的核心原因很明确——你要计算平均值的列里混入了非数值的文本值(也就是你提到的"Age"),Pandas没法把字符串转换成数值来计算均值。解决的关键就是先把这些脏数据行过滤掉。

具体操作步骤:

  1. 先正确读取Parquet文件(确保路径和文件名无误):
import pandas as pd
df = pd.read_parquet('你的文件路径.parquet')
  1. 先确认目标列的准确名称(避免拼写错误,这是新手常踩的坑):
print(df.columns)
  1. 过滤掉列值等于"Age"的行(把'目标列名'替换成你实际要处理的列名,比如'age'):
# 保留列值不等于"Age"的所有行
df_cleaned = df[df['目标列名'] != 'Age']

如果你发现"Age"是作为重复的表头行出现在数据里(比如导出Parquet时不小心把表头写了两次),也可以直接按行索引删除:

# 比如第一行是重复表头,就删除索引为0的行
df_cleaned = df.drop(df.index[0])
  1. 转换列类型并计算平均值:
# 将列转换为数值类型,无法转换的值会被设为NaN,方便后续跳过
df_cleaned['目标列名'] = pd.to_numeric(df_cleaned['目标列名'], errors='coerce')
# 计算平均值,自动跳过NaN值
average_value = df_cleaned['目标列名'].mean(skipna=True)
print(average_value)

第二个错误:DataFrame不可调用(TypeError: 'DataFrame' object is not callable)

这个错误和数据本身无关,是代码的语法问题:你大概率把DataFrame的索引方式写错了,比如误写了df('目标列名')(用了圆括号),而正确的列索引应该是方括号df['目标列名'],或者用df.loc[:, '目标列名']。检查一下你的代码,把错误的圆括号改成方括号就能解决。

关于Parquet读取的疑问

这个问题不是Parquet读取的问题,而是原始Parquet文件里的数据本身存在脏数据(混入了文本值或重复表头)。Parquet作为列式存储格式,会如实保留原始数据的类型和内容,如果原始数据里的列是混合类型(既有数值又有字符串),或者导出时不小心把表头重复写入了数据行,就会导致你遇到的问题。本质是数据质量问题,通过数据清洗就能解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:39:08