PyCharm中使用“Pandas”和“Seaborn”出现类型错误

3

我目前使用Python和PyCharm集成开发环境,在seaborn中绘制由pandas生成的数据框。我正在使用以下代码:

from matplotlib import pyplot as plt
import pandas as pd
import seaborn as sns

netflix_stocks = pd.read_csv("NFLX.csv")
dowjones_stocks = pd.read_csv("DJI.csv")
netflix_stocks_quarterly = pd.read_csv("NFLX_daily_by_quarter.csv")

# rename columns
netflix_stocks.rename(columns = {'Adj Close': 'Price'}, inplace = True)
dowjones_stocks.rename(columns = {'Adj Close': 'Price'}, inplace = True)
netflix_stocks_quarterly.rename(columns = {'Adj Close': 'Price'}, inplace = True)


# visualizing the netflix quarterly data
ax = plt.subplot()
sns.violinplot(data = netflix_stocks_quarterly, x = "Quarter", y = "Price")
ax.set_title("Distribution of 2017 Netflix Stock Prices by Quarter")
plt.xlabel("Business Quarters in 2017")
plt.ylabel("Closing Stock Price")

plt.savefig("Distribution of 2017 Netflix Stock Prices by Quarter.png")
plt.show()

这导致了错误消息的出现。

Traceback (most recent call last):
  File "D:\testproject\venv\lib\site-packages\numpy\core\getlimits.py", line 459, in __new__
    dtype = numeric.dtype(dtype)
TypeError: 'NoneType' object is not callable
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "D:\Program Files (x86)\PyCharm Community Edition 2021.3.1\plugins\python-ce\helpers\pydev\pydevd.py", line 1483, in _exec
    pydev_imports.execfile(file, globals, locals)  # execute the script
  File "D:\Program Files (x86)\PyCharm Community Edition 2021.3.1\plugins\python-ce\helpers\pydev\_pydev_imps\_pydev_execfile.py", line 18, in execfile
    exec(compile(contents+"\n", file, 'exec'), glob, loc)
  File "D:/testproject/main.py", line 18, in <module>
    sns.violinplot(data = netflix_stocks_quarterly, x = "Quarter", y = "Price")
  File "D:\testproject\venv\lib\site-packages\seaborn\_decorators.py", line 46, in inner_f
    return f(**kwargs)
  File "D:\testproject\venv\lib\site-packages\seaborn\categorical.py", line 2408, in violinplot
    plotter.plot(ax)
  File "D:\testproject\venv\lib\site-packages\seaborn\categorical.py", line 1043, in plot
    self.draw_violins(ax)
  File "D:\testproject\venv\lib\site-packages\seaborn\categorical.py", line 801, in draw_violins
    self.draw_box_lines(ax, violin_data, support, density, i)
  File "D:\testproject\venv\lib\site-packages\seaborn\categorical.py", line 967, in draw_box_lines
    ax.scatter(center, q50,
  File "D:\testproject\venv\lib\site-packages\matplotlib\__init__.py", line 1412, in inner
    return func(ax, *map(sanitize_sequence, args), **kwargs)
  File "D:\testproject\venv\lib\site-packages\matplotlib\axes\_axes.py", line 4487, in scatter
    self.add_collection(collection)
  File "D:\testproject\venv\lib\site-packages\matplotlib\axes\_base.py", line 2242, in add_collection
    self._unstale_viewLim()
  File "D:\testproject\venv\lib\site-packages\matplotlib\axes\_base.py", line 776, in _unstale_viewLim
    self.autoscale_view(**{f"scale{name}": scale
  File "D:\testproject\venv\lib\site-packages\matplotlib\axes\_base.py", line 2932, in autoscale_view
    handle_single_axis(
  File "D:\testproject\venv\lib\site-packages\matplotlib\axes\_base.py", line 2895, in handle_single_axis
    x0, x1 = locator.nonsingular(x0, x1)
  File "D:\testproject\venv\lib\site-packages\matplotlib\ticker.py", line 1654, in nonsingular
    return mtransforms.nonsingular(v0, v1, expander=.05)
  File "D:\testproject\venv\lib\site-packages\matplotlib\transforms.py", line 2880, in nonsingular
    if maxabsvalue < (1e6 / tiny) * np.finfo(float).tiny:
  File "D:\testproject\venv\lib\site-packages\numpy\core\getlimits.py", line 462, in __new__
    dtype = numeric.dtype(type(dtype))
TypeError: 'NoneType' object is not callable
python-BaseException
Backend TkAgg is interactive backend. Turning interactive mode on.

出现问题的代码在 jupyter notebook 下可以正常工作。我正在使用以下版本的 pandas、matplotlib 和 seaborn:

导入的包的版本

此外,我使用虚拟环境创建了一个项目:

使用虚拟环境创建的项目

由于数据框中没有“空”条目或需要更改数据类型的条目,我无法找出原因。应该绘制的数据框如下所示:

数据框

非常感谢任何建议!

提前致谢, Jonas


Python环境在Jupyter笔记本和IDE中是否相同?另外,请发布实际数据的链接,而不是图片,以便人们可以重新创建问题。 - Josh Friedlander
你好!*.csv文件可以在https://github.com/jonasbauer192/CODECADEMY-Capstone-Project-Netflix-Data找到。 此外,我使用带有miniconda和VirtualEnv的jupyter笔记本和PyCharm。但我也尝试在PyCharm中使用Conda环境,但是会导致相同的错误。 - jonasbauer192
我刚刚使用了Python 3.9.8而不是3.10.1,出于某种原因它可以正常工作。 - jonasbauer192
1个回答

1

我曾经遇到过类似的问题,通过降级numpy包来解决了它。我之前使用的是1.22.3版本,现在改成了1.22.2。

首先,卸载numpy:

pip3 uninstall numpy

然后,安装1.22.2版本的numpy:

pip3 install numpy==1.22.2


正确的第二个命令是:pip3 install numpy==1.22.2``` - rhiskey

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接