Pandas 似乎忽略了额外的(无效的)参数。例如
import pandas as pd
df=pd.read_excel('myfile.xlsx', some_dummy_param=True)
我预计(但没有得到)类似...的错误
TypeError: __init__() got an unexpected keyword argument 'some_dummy_param'
问题是,因为没有错误,我认为“some_dummy_param”是有效的。这当然不是预期的。有什么方法可以确保只将有效参数传递给 read_excel 方法?
请您参考如下方法:
不,不是真的。
关键字参数通常通过 **kwargs 在 Pandas 中传递, 它被转发或被视为 dict。使用此 dict 的函数可以自由检查是否存在与预期不同的键。
你可以做类似的事情:
def safe_read_excel(self, f_name, *args, **kwargs):
# Check if kwargs contains wrong parameters
if set(kwargs.keys()).difference(set(<expected keys>)):
raise ValueError(<some messagge>)
return self.read_excel(f_name, *args, **kwargs)
pd.DataFrame.safe_read_excel = safe_read_excel
但是,这会
- 为DataFrame创建一个非标准方法
- 可能会因不同版本的 Pandas 而中断
