【问题标题】:Exception with Pandas on secondary computer辅助计算机上的 Pandas 例外
【发布时间】:2018-05-27 16:53:30
【问题描述】:

我在一台计算机上没有任何问题,但转移到服务器时,相同的代码遇到了 Pandas 问题。我做了conda env updategit pull。两者都是最新的。肯定是一些类似的设置问题仍然是问题,但我不知道是什么。

pandas 版本相同:

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.api.types下吗?
  • 您还确定 pip 列出了您的 fastai 环境中的库吗?
  • 我不遵循 pandas.api.types 评论。你能详细说明一下吗?确认的 pip 是 env 的 pip:which pip /root/anaconda3/envs/fastai/bin/pip
  • 回溯显示is_numeric_dtype 是从pandas.core.common 导入的,但据我所知,它目前位于pandas.api.types 下。请参阅docs。也许您已经更新了 pandas,但没有更新依赖于旧版 pandas 的其他库?似乎错误来自pandas_summary 包。这是最新的吗?
  • 是的,上周的修复似乎是merged。我认为当您更新该软件包时它会得到解决。

标签: python pandas anaconda


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-04
    • 2013-09-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多