【问题标题】:ValueError: index must be monotonic increasing or decreasing, including index,column, ffill at the same timeValueError: index 必须是单调递增或递减,同时包含index,column,ffill
【发布时间】:2017-12-05 17:41:21
【问题描述】:

我使用的 pandas 版本是 '0.20.1', python 3

虽然有两个问题: question1 , question2 被问到同样的错误,而我发现这两个问题跟我的情况不一样。

数据来自《用于数据分析的 Python》一书,第 123-124 页。 当我运行以下代码时,

frame = DataFrame(np.arange(9).reshape((3, 3)), index=['a', 'c', 'd'],
                  columns=['Ohio', 'Texas', 'California'])
states = ['Texas', 'Utah', 'California']
frame.reindex(index=['a', 'b', 'c', 'd'], method='ffill',columns=states)

报错

ValueError: index must be monotonic increasing or decreasing

虽然我尝试了以下两个表达式,但它们运行成功:

frame.reindex(index=['a', 'b', 'c', 'd'], columns=states)

frame.reindex(index=['a', 'b', 'c', 'd'], method='ffill')

***********************更新***************

我试过这段代码,

frame3=frame.reindex(index=['a', 'b', 'c', 'd'], method='ffill').reindex(columns=states)

然后它返回与书相同的结果。

Out[92]:
Texas Utah California
a 1 NaN 2
b 1 NaN 2
c 4 NaN 5
d 7 NaN 8

【问题讨论】:

  • 你用的是什么版本的熊猫?您的确切代码适用于 0.18.1
  • 熊猫版本是'0.20.1',python 3
  • @DeepSpace,你的意思是“frame3=frame.reindex(index=['a', 'b', 'c', 'd'], method='ffill').reindex( columns=states)" 适合你吗?
  • 是的,确实如此……
  • 谢谢,也许以前的pandas版本可以像书一样运行代码。如果有人使用以前版本的 pandas,请告诉我,谢谢。

标签: python dataframe valueerror


【解决方案1】:

因为列也被重新索引,不是单调递增或递减。

【讨论】:

  • 考虑添加更多细节/上下文来帮助 OP
  • 如果把代码改成frame.reindex(index=[1,2,3,4],method='ffill', columns=[1,2,3]) 它也不起作用 - pandas 0.25.1 和 Python 3.7.3
猜你喜欢
  • 2019-11-18
  • 2015-09-25
  • 2017-07-19
  • 1970-01-01
  • 1970-01-01
  • 2014-03-18
  • 1970-01-01
  • 2019-06-05
  • 2022-10-18
相关资源
最近更新 更多