source

AttributeError: 'DataFrame' 개체에 'ix' 속성이 없습니다.

factcode 2023. 11. 5. 15:01
반응형

AttributeError: 'DataFrame' 개체에 'ix' 속성이 없습니다.

팬더 데이터 프레임의 .ix 속성을 사용하여 열을 끄집어 내려고 하면 이 오류가 발생합니다.df.ix[:, 'col_header'].

AttributeError: 'DataFrame' object has no attribute 'ix'

스크립트는 오늘 아침에 작동했지만, 오늘 오후에 팬더를 새로 설치한 새로운 Linux 환경에서 실행했습니다.이전에 이 오류를 본 사람이 또 있습니까?여기저기 찾아봤지만 찾을 수가 없습니다.

해라df.iloc[:, integer]

.ix사용하지 않습니다.

그나저나.df.loc[:,'col_header']str 또는 boolean 인덱싱에 사용됩니다.

.ix를 .loc로 변경하면 올바르게 작동합니다.

오늘(2020년 1월 30일) 새로 설치될 예정입니다.pd.__version__ == '1.0.0'. 이와 함께 사용되지 않는 많은 기능이 제거됩니다.

시리즈를 제거했습니다.ix 및 DataFrame.ix (GH26438)

다음 단계를 수행합니다. 1) 새 버전의 Panda 설치 2) .ix 대신 .loc를 사용합니다.

팬더 1.0.0과 같은 문제가 있었는데, 이것은 나에게 효과가 있었습니다.

관리자로 Anaconda 프롬프트(cmd)를 연 다음

conda install panda==0.25.1

여러분의 새로운 팬더 버전은 더 오래된 팬더 버전에 의해 덮어쓰기 될 것입니다!

그것은 나에게 통합니다.

ix[] 대신 df.loc[]를 사용합니다.

6을 제거하면

ix 대신 iloc 또는 loc를 사용합니다.

문자열 또는 사용자 정의 색인이 있는 경우 .loc를 사용합니다.

.ix() 대신 .loc()를 사용했는데 잘 되었습니다.

.ix를 .iloc로 교체한 후에 나도 작업을 잘했습니다.

예측_ARIMA_log = pd.영상 시리즈(ts_log.iloc[0], 인덱스=ts_log.index)

필요한 경우.ix[], 팬더 버전을 0.20.0으로 다운그레이드해야 합니다.최신 버전에서는 다음을 사용할 수 있습니다..loc[]아니면.iloc[]대신.

한 열:

df[['sepal width']]

두 열:

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

특수 열('길이' 포함 선택 열):

df[[c for c in df.columns if 'length' in c]]

Wes McKinney의 '데이터 분석을 위한 Python'이라는 책을 읽고 있는데 Dataframe이라는 같은 문제를 만나게 되었습니다.인덱스가 있는 행을 검색하는 동안 ix[].ix를 iloc로 대체하고 완벽하게 작동합니다.

색인, 레이블 및 정수가 혼재되어 있기 때문에 .ix를 사용하고 있습니다. .loc()는 .iloc뿐만 아니라 문제를 해결하지 못합니다. 둘 다 오류로 끝납니다.인덱스가 정수와 레이블이 섞여 있을 때 빠른 차선이기 때문에 의도적으로 .ix를 사용하고 있었습니다.

예를 들면 다음과 같습니다.

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

안녕, 파비오.

나는 이것을 해야만 했습니다.

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

많은 노력 끝에 저는 이것을 이용해 그것을 이루었습니다.

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

적어도 이 경우에는 2015년을 핵심으로 단면과 필터를 사용할 수 있을 것으로 생각합니다.

네, 맞습니다.교체하다df.ix[]와 함께df.iloc[]아니면df.loc[]

  1. 남자들은 현재 판다들을 업데이트하려고 합니다.
  2. .ix를 .iloc로 교체한 후에 작업을 잘 진행합니다. 자세한 내용은 문서를 참조하십시오.

언급URL : https://stackoverflow.com/questions/59991397/attributeerror-dataframe-object-has-no-attribute-ix

반응형