ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Pandas] 엑셀 데이터를 이용하여 DataFrame 만들기
    Python/Pandas 2020. 3. 12. 01:46

    Pandas의 기초를 파악했다면 이제 우리가 가장 많이 쓰는 DataFrame에 대해 좀 더 알아보도록 하겠습니다.

     

    Pandas에서는 read_csv, excel 등을 통해서 엑셀 파일이나 csv파일을 읽어 아래와 같이 DataFrame으로 만들어 낼 수 있습니다. 간단한 예제를 통해 알아보도록 하겠습니다.

     


    Excel 데이터 추출

     

    저장되어있는 엑셀파일의 내용은 다음과 같습니다.

     

     

    read_excel 함수를 사용하여 불러올 엑셀파일의 경로를 적어주고 혹시 한글이 깨질것을 방지하여 엑셀파일을 불러 온 후에 encoding을 utf-8을 적용시키겠습니다.

     

    import pandas as pd
    
    df = pd.read_excel("C:/Pandas/peoples.xlsx", encoding = 'utf-8')
    df

     

    ● 데이터 상위 5개만 보기 head()

    자료의 길이가 많을때는 head() 함수를 사용하여 상위 5개만 추출 할 수 있습니다.

     

    ● 데이터 하위 5개만 보기 tail()

    head()함수와 반대로 tail() 함수를 사용하면 하위 5개의 데이터 항목을 추출 할 수 있습니다.

     

    ● df['컬럼명'][index범위]

    컬럼명과 범위 지정을 통해서도 원하는 데이터 값만 추출할 수도 있습니다.

     

    ● 평균값 추출하기 mean()

    mean() 함수를 이용하여 데이터의 평균값을 추출할 수 있습니다.

     

    ● 최대값 추출하기 max()

    max() 함수를 이용하여 지정된 컬럼에서 가장 큰 값을 추출할 수 있습니다.

     

    ● 최소값 추출하기 min()

    min() 함수를 이용하여 지정된 컬럼에서 가장 작은 값을 추출할 수 있습니다.

     

    ● 정렬

    데이터에서 sort_values 함수를 통하여 원하는 컬럼을 선택한 후 내림차순 또는 오름차순으로 정렬 할 수 있습니다.

     

    오름차순 : ascending = True(기본값)

     

    내림차순 : ascending = False

     

    ● 검색

    조건을 통하여 원하는 데이터를 추출할 수 있습니다.

     

    또한 조건을 통해 뽑아낸 데이터들을 sort_values를 통해 정렬할 수 도 있습니다.

     


    행(Row) / 열(Column) 수정

     

     

    다음과 같은 기본 데이터를 먼저 생성합니다.

    product_list = [
        {'item' : 'Mouse', 'price' : 18000, 'company' : 'Logic'},
        {'item' : 'Keyboard', 'price' : 34000, 'company' : 'Zeus'},
        {'item' : 'RAM', 'price' : 85000, 'company' : 'Sams'}
    ]
    df = pd.DataFrame(product_list)
    df

     

    ● 단일값 수정

    새로운 컬럼과 단일값을 추가할때는 다음과 같이 컬럼명과 들어갈 데이터 값을 입력하여 사용합니다.

     

    ● Series 추가하기

    index별로 각각의 값을 넣을땐 Series를 사용하여 데이터를 추가합니다.

     

    ● 연산결과 추가하기

    컬럼을 이용하여 데이터를 연산하여 새로운 컬럼을 추가할 수도 있습니다.

     

    ● List 추가하기

    반복문과 조건문을 이용하여 데이터를 비교한 후 리스트 형태로 만들어 컬럼을 추가할 수 있습니다.

    discount = []
    
    for row in df['total']:
        if row >=5 :
            discount.append('20%')
        elif row >=3 :
            discount.append('10%')
        else :
            discount.append('0%')
            
    df['discount'] = discount
    df

     

    ● 사용자 함수

    사용자가 함수를 만들었을 때 apply를 이용하여 DataFrame에 함수를 사용할 수 있습니다.

     

    아래와 같이 Create_date가 있을때

     

    함수를 만들어 Create_date에서 연도만 추출할 수 있습니다.

    def extract_year(row):
        return row.split('-')[0]
    
    df['Year'] = df['Create_date'].apply(extract_year)
    df

    'Python > Pandas' 카테고리의 다른 글

    [Pandas] 기초  (2) 2020.03.10

    댓글

Yellow Apple's LAB