pandas方法的有效参数

sha*_*nuo 1 python pandas

熊猫似乎忽略了额外的(无效)参数.例如

import pandas as pd
df=pd.read_excel('myfile.xlsx', some_dummy_param=True)
Run Code Online (Sandbox Code Playgroud)

我期望(但没有得到)一个像......的错误

TypeError: __init__() got an unexpected keyword argument 'some_dummy_param'
Run Code Online (Sandbox Code Playgroud)

问题是,由于没有错误,我认为"some_dummy_param"是有效的.这当然不是预期的.有没有办法确保只有有效的参数传递给read_excel方法?

Ami*_*ory 5

不,不是真的.

关键字参数通常在Pandas中传递**kwargs,它被转发或视为一个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
Run Code Online (Sandbox Code Playgroud)

但是,这会

  1. 为DataFrame创建一个非标准方法
  2. 可能会破坏不同版本的熊猫