【问题标题】:AttributeError: 'Series' object has no attribute 'sort_values'AttributeError:“系列”对象没有属性“排序值”
【发布时间】:2016-04-11 22:50:06
【问题描述】:

pyLDAvis 库 prepare 方法在内部使用 pandas 库时崩溃。

代码如下:

    def load_R_model(filename):
        with open(filename, 'r') as j:
            data_input = json.load(j)
        data = {'topic_term_dists': data_input['phi'],
                'doc_topic_dists': data_input['theta'],
                'doc_lengths': data_input['doc.length'],
                'vocab': data_input['vocab'],
                'term_frequency': data_input['term.frequency']}
        return data

    movies_model_data = load_R_model('movie_reviews_input.json')
    print('Topic-Term shape:%s' %str(np.array(movies_model_data['topic_term_dists']).shape))
    print('Doc-Topic shape: %s' %str(np.array(movies_model_data['doc_topic_dists']).shape))

    movies_vis_data =         pyLDAvis.prepare(np.array(movies_model_data['topic_term_dists']),
                               np.array(movies_model_data['doc_topic_dists']),
                               np.array(movies_model_data['doc_lengths']),
                               np.array(movies_model_data['vocab']),
                               np.array(movies_model_data['term_frequency']))

错误:

... 第 283 行,准备中 topic_proportion=>(topic_freq/topic_freq.sum()).sort_values(ascending=False) ...

AttributeError: 'Series' 对象没有属性 'sort_values'

虽然我更新了最新版本,为什么 pandas 没有 sort_values 属性?

【问题讨论】:

  • 你确定版本已经更新了吗? pd.__version__ 显示什么?
  • 好点。我刚刚检查过它说 0.13.1。但是我做了sudo pip install -U pandas
  • 你需要先解决这个问题,如果你有旧版本,你可以使用.sort
  • 我应该使用 0.17.1 才能使用 prepare 方法。但是我不能升级它,说包pandas成功升级,而版本仍然是0.13.1

标签: python visualization lda


【解决方案1】:

pandas 包在 0.23.4 版本中取消了排序方法。旧版本的 Series 和 DataFrame 对象也包含此功能。新版本推荐使用sort_index和sort_values函数

使用 排序值() 要么 排序索引()

【讨论】:

    【解决方案2】:

    我在自 0.20.0 版以来已弃用“sort_values”问题时遇到了类似的错误。使用 DataFrame.sort_index()

    【讨论】:

      【解决方案3】:

      最新版本的 Pandas 有 .sort_values()

      import pandas as pd

      pd.sort_values()

      可以使用

      【讨论】:

        【解决方案4】:

        我最近遇到了同样的错误。这是因为 pandas.DataFrame.sortlevel() 自 pandas 0.20.0 版以来已弃用。请改用DataFrame.sort_index()。这解决了我的问题。

        【讨论】:

          【解决方案5】:

          根据文档。 http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.sort_values.html

          'sort_values' 是 0.17.0 版中的新功能。 所以,请更新熊猫版本。

          如何查看 pandas 版本:

          import pandas as pd
          pd.__version__
          

          如何更新熊猫。

          使用 conda:conda update pandas

          使用点子:pip install pandas -U

          【讨论】:

            猜你喜欢
            • 2019-12-04
            • 2014-05-05
            • 2020-11-11
            • 2019-04-22
            • 2019-07-26
            • 2020-04-04
            • 2019-09-16
            • 2017-12-12
            • 2018-05-25
            相关资源
            最近更新 更多