ValueError: index 必须是单调递增或递减,同时包含index,column,ffill
Posted
技术标签:
【中文标题】ValueError: index 必须是单调递增或递减,同时包含index,column,ffill【英文标题】:ValueError: index must be monotonic increasing or decreasing, including index,column, ffill at the same time 【发布时间】: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,请告诉我,谢谢。 【参考方案1】:因为列也被重新索引,不是单调递增或递减。
【讨论】:
考虑添加更多细节/上下文来帮助 OP 如果把代码改成frame.reindex(index=[1,2,3,4],method='ffill', columns=[1,2,3]) 它也不起作用 - pandas 0.25.1 和 Python 3.7.3以上是关于ValueError: index 必须是单调递增或递减,同时包含index,column,ffill的主要内容,如果未能解决你的问题,请参考以下文章
数据分析,使用plt.hist(runtime_data, num_bin_list)时出现ValueError: `bins` must increase monotonically, when a