求助:Python中读取Feather(.ftr)文件失败的问题解决
解决Python读取Feather文件的两类报错问题
你遇到的这两个问题我之前也碰到过,给你整理了针对性的解决办法:
一、解决TypeError: read_feather() got an unexpected keyword argument 'nthreads'
这个报错本质是pandas和依赖的pyarrow/feather版本不兼容导致的——老版本pandas的read_feather会默认传递nthreads参数,但新版本的pyarrow已经移除了这个参数,两者对接就出了问题。
推荐两种解决方式:
- 直接升级pandas到最新稳定版,让参数逻辑匹配:
pip install --upgrade pandas - 如果不想升级pandas,可以显式指定使用pyarrow引擎,避免参数冲突:
import pandas as pd houses_rawdata = pd.read_feather('test_file.ftr', engine='pyarrow')
二、解决ArrowInvalid: Not a feather file
既然你确认文件是正确的,那大概率是路径或版本兼容问题:
- 先检查文件路径:很多时候是代码运行的当前目录和文件所在目录不一致导致的。可以先打印当前工作目录确认:
如果文件不在这个目录里,换成绝对路径试试,比如:import os print(os.getcwd())import feather houses_rawdata = feather.read_dataframe('/Users/xxx/Documents/test_file.ftr') - 升级依赖库:Feather有v1和v2版本,旧版的feather/pyarrow可能无法识别新版Feather文件。执行下面的命令把相关库都更到最新:
pip install --upgrade feather-format pyarrow - 最后可以验证文件完整性:如果条件允许,用其他工具(比如R语言的feather包)尝试读取这个文件,确认文件本身没有隐性损坏。
内容的提问来源于stack exchange,提问作者OwenZ
相关产品推荐
相关产品推荐

