当您使用Tiingo+pandas\u datareader时,是否有人遇到此问题
警告如下:
python3.8/site-packages/pandas_datareader/tiingo.py:234: FutureWarning: In a future version of pandas all arguments of concat except for the argument 'objs' will be keyword-only
return pd.concat(dfs, self._concat_axis)
我认为此警告不会影响我对tiingo数据的访问,因为我可以获得我想要的所有数据。 我只想了解我的当前代码是否存在任何风险:
my python3 - 3.8.5,
Python 3.8.5, pytest-6.2.4, py-1.10.0, pluggy-0.13.1
pandas_datareader version - 0.10.0
pandas version - 1.3.2
我还使用python的真实“未来版本”:3.9.6(与python 3.8.5相比)测试了我的代码。令我惊讶的是,我没有收到任何警告或错误:
platform win32 -- Python 3.9.6, pytest-6.2.4, py-1.10.0, pluggy-0.13.1
任何建议都将不胜感激
不要担心未来的警告,它不会以任何方式影响您的代码。 但尽量避免此类警告,因为在将来,当熊猫更新时,此警告将不会显示,而是会出现错误。这就是它显示未来警告的原因
python中的大多数函数参数都是“位置或关键字”参数
即,如果我有此功能:
然后我可以这样调用它,使用位置参数:
或者像这样,使用关键字参数:
或者像这样,混合使用这两个参数(但请注意,不允许在关键字参数之后有位置参数):
但也可以使用仅位置参数或仅关键字参数定义函数
假设我有另一个功能:
在这个函数中,我将
x
标记为仅位置,因为它位于/
之前。我将z
标记为仅作为关键字,因为它位于*
之后y
是位置参数或关键字参数,因为它位于/
之后*
之前。这意味着这两次调用函数的尝试将失败:第一次是因为z
被作为位置参数调用,第二次是因为x
被作为关键字参数调用:但是,这两次尝试都将成功-
y
仍然是位置参数或关键字参数“未来警告”信息
FutureWarning
消息与您正在使用的python版本无关,而是与您正在使用的pandas
版本有关Pandas
是第三方库,不是python核心的一部分,因此您使用的pandas
版本与您使用的python版本完全不同警告让您知道,目前您可以编写
pd.concat(dfs, self._concat_axis)
,但他们正计划在pandas
的未来版本中更改函数的定义,以便objs
之外的所有参数将仅为关键字。也就是说,在他们进行此更改之后,pd.concat(dfs, self._concat_axis)
将引发一个错误,您将不得不改为写入pd.concat(dfs, axis=self._concat_axis)
。他们很可能会考虑进行此更改,因为使用关键字参数调用函数通常更清晰,对其他人来说更可读相关问题 更多 >
编程相关推荐