在我的代码中,我有一个 2D numpy.ndarray 填充了numpy.str_值。我正在尝试使用 select 方法将值“null”更改为“nan”。问题是这种方法引发了 FutureWarning。
我读过这个。根据那里的建议,我尝试不将 Python 字符串与 Numpy 字符串进行比较,而是在开始时将 Python 字符串转换为 Numpy 字符串。显然这没有帮助,我正在寻找建议。
我想避免关闭警告(因为它在链接中)。在我看来,这是一种非常肮脏的方法。
我的代码片段:
import pandas_datareader as pd
import numpy as np
import datetime as dt
start_date = dt.datetime(year=2013, month=1, day=1)
end_date = dt.datetime(year=2013, month=2, day=1)
df = pd.DataReader("AAA", "yahoo", start_date, end_date + dt.timedelta(days=1))
array = df.to_numpy()
null = np.str_("null")
nan = np.str_("nan")
array = np.select([array == null, not array == null], [nan, array])
print(array[0][0].__class__)
print(null.__class__)
C\Python\Project.py:13: FutureWarning: elementwise comparison failed; returning scalar instead, but in the future will perform elementwise comparison
array = np.select([array == null, not array == null], [nan, array])
<class 'numpy.str_'>
<class 'numpy.str_'>
我对 Python 很陌生,所以每一个帮助都将不胜感激。而且-如果您有更好的方法来实现这一目标,请告诉我。
谢谢!
编辑:对不起。现在它应该可以正常工作了。