gpt4 book ai didi

python - Pandas :使用 ix 索引超出范围,但我可以看到该列

转载 作者:太空宇宙 更新时间:2023-11-03 13:38:24 26 4
gpt4 key购买 nike

我不知道为什么 pandas 在此数据帧上抛出索引越界:

SC7a        2009    2010    2011    2012    2013    2014
Region 10 10.1 10.6 11.1 11.6 9.7 10.8
Georgia 7.5 7.4 7.8 7.6 7.2 7.1

我所做的就是调用:

df.ix[:, 2014]

我得到这个错误:

IndexError: index 2014 is out of bounds for axis 0 with size 6 

请注意,调用 loc 工作得很好:

df.loc[:, 2014]
SC7a
Region 10 10.8
Georgia 7.1
Name: 2014, dtype: float64

这是一个错误吗? df.loc 和 df.ix 不应该与这些数据互换吗?

最佳答案

我猜你的 df.columns.dtypeobject 数据类型并且测试 df.columns.is_integer() 返回 false。

ix 的行为取决于索引的数据类型或内容。如果您有一个 integer 类型的索引或 .is_integer() 为真,ix 使用基于标签的索引(如 loc)。如果您有其他类型的索引(例如 floatobject),则 ix 在给定整数查找时使用基于位置的索引(例如iloc).在后一种情况下,索引位置 2014 超出范围。

如果您将列转换为整数类型,ix 将按您预期的那样工作(它只会使用基于标签的索引):

>>> df.columns = df.columns.astype(int)
>>> df.ix[:, 2014]
Region 10 10.8
Georgia 7.1
Name: 2014, dtype: float64

关于python - Pandas :使用 ix 索引超出范围,但我可以看到该列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36071702/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com