python - 辅助计算机上的 Pandas 例外
问题描述
我在一台计算机上没有任何问题,但是转移到服务器上,相同的代码遇到了 Pandas 问题。我做了一个conda env update
和git pull
。两者都是最新的。当然,一些类似的设置问题仍然是问题,但我不知道是什么。
熊猫版本在两者上都是相同的:
pip list | grep pandas
pandas 0.23.0
pandas-summary 0.0.41
sklearn-pandas 1.6.0
AttributeError:模块“pandas.core.common”没有属性“is_numeric_dtype”
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-11-5fc2f9e3ed3e> in <module>()
----> 1 DataFrameSummary(tables[4])
~/anaconda3/envs/fastai/lib/python3.6/site-packages/pandas_summary/__init__.py in __init__(self, df)
25 self.df = df
26 self.length = len(df)
---> 27 self.columns_stats = self._get_stats()
28 self.corr = df.corr()
29
~/anaconda3/envs/fastai/lib/python3.6/site-packages/pandas_summary/__init__.py in _get_stats(self)
87 # settings types
88 stats['types'] = ''
---> 89 columns_info = self._get_columns_info(stats)
90 for ctype, columns in columns_info.items():
91 stats.ix[columns, 'types'] = ctype
~/anaconda3/envs/fastai/lib/python3.6/site-packages/pandas_summary/__init__.py in _get_columns_info(self, stats)
109 self.EXCLUDE,
110 column_info['constant'].union(column_info['bool']))
--> 111 column_info[self.TYPE_NUMERIC] = pd.Index([c for c in rest_columns
112 if common.is_numeric_dtype(self.df[c])])
113 rest_columns = self.get_columns(self.df[rest_columns], self.EXCLUDE, column_info['numeric'])
~/anaconda3/envs/fastai/lib/python3.6/site-packages/pandas_summary/__init__.py in <listcomp>(.0)
110 column_info['constant'].union(column_info['bool']))
111 column_info[self.TYPE_NUMERIC] = pd.Index([c for c in rest_columns
--> 112 if common.is_numeric_dtype(self.df[c])])
113 rest_columns = self.get_columns(self.df[rest_columns], self.EXCLUDE, column_info['numeric'])
114 column_info[self.TYPE_DATE] = pd.Index([c for c in rest_columns
AttributeError: module 'pandas.core.common' has no attribute 'is_numeric_dtype'
解决方案
pandas.core.common.is_numeric_dtype 在 0.23 中被移除。
前往
/anaconda3/envs/fastai-cpu/lib/python3.6/site-packages/pandas_summary/__init__.py in <listcomp>(.0)
110 column_info['constant'].union(column_info['bool']))
111 column_info[self.TYPE_NUMERIC] = pd.Index([c for c in rest_columns
--> 112 if common.is_numeric_dtype(self.df[c])])
113 rest_columns = self.get_columns(self.df[rest_columns], self.EXCLUDE, column_info['numeric'])
114 column_info[self.TYPE_DATE] = pd.Index([c for c in rest_columns
并将其更改common
为types
.
另外,添加from pandas.api import types
到文件的开头。
或者,降级至 0.22
推荐阅读
- .htaccess - 上传到子域时出现 Codeignitor 3 内部服务器错误
- flutter - BlocListener 只返回初始加载状态
- docker - 在将秘密传递给 dockerfile 之前对其进行加密
- phaser-framework - 即使设置了 Tint,Phaser 3 BitmapText 文本仍保持白色
- flutter - 如何解决此错误“('HttpClient Function(SecurityContext)')不是'HttpOverrides.createHttpClient'的有效覆盖”
- elasticsearch - Elasticsearch - 根据字段中的唯一值获取聚合数据
- python - 在输入框上显示按钮的值
- c++ - 在字符串上使用 += 运算符以添加 .txt 用于文件输出
- flutter - 颤动中带有圆角的下拉菜单
- python - 如何在 for 循环或其他中简化 python 代码