当我尝试使用pandas数据框的.ix属性提取列时,出现上述错误。 df.ix[:, 'col_header']
。脚本从今天早上开始运行,但是今天下午我在带有新安装的Pandas的新Linux环境中运行了该脚本。有人以前见过这个错误吗?我在这里和其他地方搜索过,但找不到。
答案 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之类的
我的出路是备份列和索引,替换为整数,使用.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)