programing

판다가 칼럼을 색인으로 사용할 수 있을까요?

oldcodes 2023. 6. 13. 22:46
반응형

판다가 칼럼을 색인으로 사용할 수 있을까요?

다음과 같은 스프레드시트가 있습니다.

Locality    2005    2006    2007    2008    2009

ABBOTSFORD  427000  448000  602500  600000  638500
ABERFELDIE  534000  600000  735000  710000  775000
AIREYS INLET459000  440000  430000  517500  512500

열을 행과 수동으로 전환하지 않습니다.다음과 같이 목록에 데이터를 읽는 판다를 사용할 수 있습니까?

data['ABBOTSFORD']=[427000,448000,602500,600000,638500]
data['ABERFELDIE']=[534000,600000,735000,710000,775000]
data['AIREYS INLET']=[459000,440000,430000,517500,512500]

네, 당신은 만들 수 있습니다.'Locality'행 인덱스를 입력합니다.

data.set_index('Locality', inplace=True)

한다면inplace=True제공되지 않습니다.set_index결과적으로 수정된 데이터 프레임을 반환합니다.

예:

> import pandas as pd
> df = pd.DataFrame([['ABBOTSFORD', 427000, 448000],
                     ['ABERFELDIE', 534000, 600000]],
                    columns=['Locality', 2005, 2006])

> df
     Locality    2005    2006
0  ABBOTSFORD  427000  448000
1  ABERFELDIE  534000  600000

> df.set_index('Locality', inplace=True)
> df
              2005    2006
Locality                  
ABBOTSFORD  427000  448000
ABERFELDIE  534000  600000

> df.loc['ABBOTSFORD']
2005    427000
2006    448000
Name: ABBOTSFORD, dtype: int64

> df.loc['ABBOTSFORD'][2005]
427000

> df.loc['ABBOTSFORD'].values
array([427000, 448000])

> df.loc['ABBOTSFORD'].tolist()
[427000, 448000]

이미 설명한 대로 인덱스를 변경할 수 있습니다.set_index행을 열로 수동으로 전환할 필요가 없습니다. 전치수가 있습니다.data.T) 당신을 위해 그것을 하는 판다의 방법:

> df = pd.DataFrame([['ABBOTSFORD', 427000, 448000],
                    ['ABERFELDIE', 534000, 600000]],
                    columns=['Locality', 2005, 2006])

> newdf = df.set_index('Locality').T
> newdf

Locality    ABBOTSFORD  ABERFELDIE
2005        427000      534000
2006        448000      600000

그런 다음 데이터 프레임 열 값을 가져와 목록으로 변환할 수 있습니다.

> newdf['ABBOTSFORD'].values.tolist()

[427000, 448000]

또 다른 간단한 방법은 열을 데이터 프레임 인덱스에 할당하는 것입니다.

data = {
  'Locality': ['ABBOTSFORD', 'ABERFELDIE', 'AIREYS INLET'],
  '2005': [427000, 534000, 459000 ],
  '2006': [448000, 448000, 448000],
  '2007': [602500, 602500, 602500],
  '2008': [600000, 710000, 517500],
  '2009': [638500, 775000, 512500]
}

df = pd.DataFrame(data)

# set the locality column as the index
df.index = df['Locality']

더 이상 지역성 열을 열로 사용하지 않으려면 해당 열을 삭제하면 됩니다.

df.drop('Locality', axis=1)

당신은 결국


              | 2005     | 2006   | 2007   | 2008   | 2009
Locality      |-------------------------------------------              
ABBOTSFORD    | 427000   | 448000 | 602500 | 600000 | 638500
ABERFELDIE    | 534000   | 448000 | 602500 | 710000 | 775000
AIREYS INLET  | 459000   | 448000 | 602500 | 517500 | 512500

Pandas의 스프레드시트에서 읽는 동안 사용할 수 있는 index_col 매개 변수를 사용하여 열 인덱스를 설정할 수 있습니다.

제 솔루션은 다음과 같습니다.

  1. 먼저 판다를 PD로 불러옵니다.import pandas as pd

  2. (스프레드시트에 데이터가 있는 경우) pd.read_excel()을 사용하여 파일 이름을 읽고 index_col 매개 변수를 지정하여 인덱스를 '로컬리티'로 설정합니다.

    df = pd.read_excel('testexcel.xlsx', index_col=0)

    이 단계에서 'xlrd라는 이름의 모듈 없음' 오류가 발생하면 다음을 사용하여 설치합니다.pip install xlrd.

  3. 육안 검사를 위해 다음을 사용하여 데이터 프레임을 읽습니다.df.head()다음 출력을 출력합니다.

  4. 이제 데이터 프레임의 원하는 열 값을 가져와서 인쇄할 수 있습니다.

    sc2

언급URL : https://stackoverflow.com/questions/38542419/could-pandas-use-column-as-index

반응형