AttributeError:“ DataFrame”对象没有属性“ ix”

时间:2020-01-30 17:27:28

标签: python pandas dataframe

当我尝试使用pandas数据框的.ix属性提取列时,出现上述错误。 df.ix[:, 'col_header']。脚本从今天早上开始运行,但是今天下午我在带有新安装的Pandas的新Linux环境中运行了该脚本。有人以前见过这个错误吗?我在这里和其他地方搜索过,但找不到。

14 个答案:

答案 0 :(得分:43)

尝试df.iloc[:, integer]

.ix已弃用

顺便说一句,df.loc[:,'col_header']用于str或布尔索引

答案 1 :(得分:22)

今天(2020年1月30日)进行全新安装将安装pd.__version__ == '1.0.0'。随之而来的是removal of many deprecated features

删除了Series.ix和DataFrame.ix(GH26438)

答案 2 :(得分:12)

通过.loc更改ix即可正常工作。

答案 3 :(得分:3)

大熊猫1.0.0也有同样的问题,这对我有用

以管理员身份打开Anaconda Prompt(cmd),然后

conda install pandas == 0.25.1

您的新熊猫版本将被较旧的熊猫版本覆盖!

答案 4 :(得分:3)

尝试以下步骤: 1)安装新版本的Pandas 2)使用.loc代替.ix

答案 5 :(得分:2)

对我有用

使用ix的df.loc []安装[]

答案 6 :(得分:0)

谢谢。

回想起来,我可能不需要使用.ix,因为df ['col_header']对我有用,而且更整洁。

答案 7 :(得分:0)

一列:

/public

两列:

df[['sepal width']]

特殊列(选择的列包括“长度”):

df[['sepal width','petal width']]

答案 8 :(得分:0)

我使用.loc()而不是.ix(),并且有效。

答案 9 :(得分:0)

我正在阅读 Wes McKinney 'Python for data analysis'一书,在检索带有索引的行时遇到了Dataframe.ix []的相同问题。 我将ix替换为iloc,它运行良好。

答案 10 :(得分:0)

我正在使用.ix,因为我混合使用了索引,标签和整数。 .loc()不能像.iloc那样解决问题。两者都以错误结尾。我故意使用.ix,因为当索引是整数和标签的混合时,它是快速通道。

例如df之类的

enter image description here

我的出路是备份列和索引,替换为整数,使用.iat,然后恢复开始时的df。我有类似的东西:

# Save the df and replace indec and columns with integers
lista_colonne = list(df.columns)  
df.columns = range(0,len(lista_colonne))    
nome_indice = df.index.name
lista_indice = list(df.index)
df['Indice'] = range(0,len(lista_indice))
df.index = df['Indice']
del df['Indice']

  ... indexing here with .iat in place of .ix


# Now back as it was
df.columns = lista_colonne
df['Indice'] = lista_indice
df.index = df['Indice']
del df['Indice']
df.index.name = nome_indice

再见,法比奥。

答案 11 :(得分:0)

我必须这样做:

returns.ix['2015-01-01':'2015-12-31'].std()

经过一番努力,我使用了它:

returns.xs(key='2015',axis=0).std()

我相信至少在这种情况下,我们可以使用横截面和以2015年为关键的过滤器。

答案 12 :(得分:0)

是的,没错。将df.ix[]替换为df.iloc[]df.loc[]

答案 13 :(得分:-1)

  1. 人们尝试更新当前的熊猫
  2. 用.iloc替换.ix 取代它对我很好 有关详细信息,请参阅文档