pandas 패키지 기능 함수 정리
파이썬 pandas 패키지 내 vlookup 같은 기능 :
Pandas에서는 merge() 함수를 사용하여 vlookup 기능을 구현할 수 있습니다. 예를 들어, 두 개의 데이터프레임 df1과 df2가 있고, df1에서 'key' 열과 df2에서 'key' 열이 같은 행끼리 매칭되도록 하려면 다음과 같이 하면 됩니다.
merged_df = pd.merge(df1, df2, on='key')
이렇게하면 df1과 df2의 'key' 열이 같은 행끼리 매칭되며, 결과로 합쳐진 데이터프레임이 반환됩니다.
pandas 의 결과값을 dataframe 형식으로 보기
Pandas를 사용하여 데이터를 처리한 후 결과를 화면에 출력하려면 해당 데이터프레임을 호출하면 됩니다.
merged_df = pd.merge(df1, df2, on='key') print(merged_df)
위와 같은 코드를 실행하면 화면에 합친 dataframe이 출력됩니다.
또한 pandas에서는 head(), tail() 함수를 사용하여 특정 갯수만큼의 행만 출력할 수 있습니다.
print(merged_df.head(10)) #앞의 10개 행만 출력 print(merged_df.tail(5)) #뒤의 5개 행만 출력
위와 같이 사용 하시면 해당 행만 출력됩니다.
pandas 행 열 변환
Pandas에서 행과 열을 변환할 수 있는 함수는 transpose()와 melt() 함수가 있습니다.
transpose() 함수는 데이터프레임을 행과 열을 바꾸는 기능을 합니다.
transposed_df = df.transpose()
melt() 함수는 데이터프레임을 "녹이는" 기능을 합니다. 즉, 여러 개의 열을 하나의 열로 변환하는 것입니다.
melted_df = df.melt(id_vars=["column1", "column2"], value_vars=["column3", "column4"])
위와 같이 id_vars 인자로 열 이름을 지정하면, 해당 열은 유지되고, value_vars 인자로 열 이름을 지정하면, 해당 열은 하나의 열로 변환됩니다.
또한 pivot() 함수를 사용하여 특정 열을 행 인덱스로 설정하고, 다른 열을 열 인덱스로 설정하여 데이터를 재구성 할 수 있습니다.
pivoted_df = df.pivot(index='column1', columns='column2', values='column3')
위와 같이 사용 하시면 column1을 행 인덱스로, column2를 열 인덱스로, column3을 값으로 하여 데이터를 재구성 합니다.
파이썬 에러 cannot convert the series to <class 'int'>
Pandas에서 "cannot convert the series to <class 'int'>" 오류는 특정 열을 int 형으로 변환할 수 없을 때 발생하는 오류입니다. 이러한 오류는 변환하려는 열에 값이 숫자가 아닌 문자열, 공백, NaN 등이 포함되어 있을 때 발생합니다.
해결 방법으로는 다음과 같은 것들이 있습니다.
- 값이 숫자가 아닌 문자열, 공백, NaN등을 정제하는 것
- 변환 전에 해당 열을 확인하는 것
- pd.to_numeric() 함수를 사용하여 변환, 그리고 errors='coerce' 파라미터를 설정하여 숫자가 아닌 값은 NaN으로 변환
예를들어,
df['column_name'] = pd.to_numeric(df['column_name'], errors='coerce')
이렇게 사용 하시면 column_name 열을 int로 변환 할 수 있습니다.
pandas 컬럼 삭제
Pandas에서 데이터프레임에서 특정 열을 삭제하려면 drop() 함수를 사용할 수 있습니다.
df = df.drop(columns=['column_name'])
위와 같이 사용 하시면 column_name 열을 삭제 할 수 있습니다. 또는
df.drop(columns=['column_name'], inplace=True)
위와 같이 inplace=True 를 추가하면 해당 열을 삭제 하면서 원본 데이터프레임도 직접 수정할 수 있습니다.
만약 특정 조건을 만족하는 행만 삭제하려면, df.drop() 함수를 사용하되, 조건을 추가해야 합니다. 예를들어, 값이 0인 행을 삭제하려면
df = df[df.column_name != 0]
이렇게 사용 하시면 column_name이 0인 행을 삭제 할 수 있습니다.
pandas 숫자 천단위 콤마
Pandas에서 숫자 천단위 콤마를 표시하려면 다음과 같은 방법을 사용할 수 있습니다.
- applymap() 함수를 사용하여 숫자 천단위 콤마를 표시하는 함수를 적용
df = df.applymap('{:,}'.format)
- style.format() 함수를 사용하여 숫자 천단위 콤마를 표시
df.style.format('{:,}')
위와 같이 사용하면 데이터프레임에 있는 숫자들을 천단위 콤마로 표시할 수 있습니다. 만약 특정 열만 천단위 콤마로 표시 하고 싶다면, 다음과 같이 사용 하시면 됩니다.
df['column_name'] = df['column_name'].apply(lambda x: '{:,}'.format(x))
위와 같이 사용 하시면 column_name 열만 천단위 콤마로 표시 할 수 있습니다.
댓글