pandas 18

[Pandas] explode - 데이터형이 리스트인 컬럼 전개

개요 아래와 같이 데이터형이 리스트인 컬럼을 포함하는 데이터프레임이 있다고 하자. df = pd.DataFrame({'A': [[0, 1, 2], 'foo', [], [3, 4]], 'B': ['a', 'b', 'c','d'], 'C': [['a', 'b', 'c'], np.nan, [], ['d', 'e']], }) 리스트인 컬럼을 여러 행으로 펼쳐서 A와 B가 1 : 1 매핑이 되도록 변경하고 싶다. 방법을 알아본다. DataFrame.explode explode 함수는 리스트와 유사한 각 요소를 행으로 변환한다. DataFrame.explode(column, ignore_index=False) column 매개변수에는 분할할 컬럼을 지정하는데 단일 문자열이나 튜플로 지정할 수 있다. 단, 튜플로 지..

[Pandas] 데이터형이 리스트인 컬럼 empty 여부 확인

개요 데이터형이 리스트인 컬럼을 데이터프레임이 있다고 하자. 컬럼의 리스트가 비어있지 않은 행만 필터링하고 싶다. 방법을 적어둔다. 예시 데이터프레임 import pandas as pd df = pd.DataFrame({"col": [[1], [2, 3], [], [4, 5, 6], []]}) 이 데이터프레임을 필터링하여 인덱스가 0, 1, 3인 행만 남기려고 한다. 방법 1. str.len으로 리스트 길이 확인 str.len을 활용하면 리스트의 길이를 확인할 수 있다. print(df['col'].str.len()) 이를 이용하여 리스트의 길이가 0이 아닌 행만 필터링한다. df[df['col'].str.len() != 0] 다만 벡터화 연산을 사용한 것이 아니기 때문에 데이터프레임의 크기가 크다면 실..

[Pandas] compare - DataFrame 비교

개요 2024.02.09 - [Pandas] DataFrame 비교 - equals에 이어서 DataFrame을 비교할 수 있는 방법 중 하나인 compare에 대해 정리한다. DataFrame.compare DataFrame.compare 함수는 데이터프레임 간 일치 여부를 반환하는 equals와 달리 데이터프레임 간 차이점을 반환한다. DataFrame.compare(other, align_axis=1, keep_shape=False, keep_equal=False, result_names=('self', 'other')) - other : 비교할 데이터프레임 - align_axis: 비교 결과 정렬 축 - keep_shape : True이면 같은 값을 가진 셀도 포함하여 출력한다. - keep_eq..

[Pandas] sort_values - DataFrame 값 기준 정렬

개요 DataFrame을 특정 컬럼들을 기준으로 정렬하고 싶다. 방법을 적어둔다. + 이전에 2022.12.20 - [Python] Pandas - 데이터프레임 데이터 조작 1에서 적어두긴 했지만…… 검색에 걸리지도 않아서 다시 작성한다! DataFrame.sort_values DataFrame.sort_values 함수는 값을 기준으로 데이터프레임을 정렬한다. DataFrame.sort_values(by, *, axis=0, ascending=True, inplace=False, kind='quicksort', na_position='last', ignore_index=False, key=None) - by : 정렬 기준. 문자열 또는 리스트로 전달한다. - axis : 정렬 축. 0 또는 index이..

[Pandas] DataFrame 행(row) 순회

개요 데이터를 Pandas 데이터프레임으로 처리하려고 하는데, 데이터프레임 행 전체를 순회하면서 처리해야 하는 작업이 발생했다. 데이터프레임 행 순회를 하는 방법을 간단히 정리해 둔다. 물론 데이터프레임의 크기가 클수록 순회하는 것보다 벡터화 연산으로 처리하는 것이 유리하다. 인덱싱 아래와 같은 데이터프레임이 있다고 하자. import pandas as pd df = pd.DataFrame({ '고객번호': [1001, 1002, 1003, 1004], '이름': ['둘리', '도우너', '또치', '길동'] }, columns=['고객번호', '이름']) 데이터프레임의 인덱스 정보는 index 속성으로 접근할 수 있다. for문으로 데이터프레임의 인덱스 정보를 순회하면서 loc, iloc 등을 이용해 ..

[Python] Pandas - 여러 컬럼 추가

개요 DataFrame에 스칼라 값인 컬럼이 여럿 추가하고 싶을 때는 단순 할당을 반복하거나, import numpy as np import pandas as pd map_code_message = [ {'code':'00','return_message':'Continue'}, {'code':'01','return_message':'Switching Protocol'}, {'code':'02','return_message':'Processing'}, {'code':'03','return_message':'Early Hints'}, ] df = pd.DataFrame(map_code_message) df['server'] = 'web' df['stage_env'] = 'dev' insert 함수를 반복해서..

[Python] Pandas - Dataframe 차집합 구하기

개요 2022.12.25 - [Python] Pandas - 데이터프레임 합성 1 (merge / join)에서 두 데이터프레임에 대한 INNER JOIN과 OUTER JOIN(left, right, full)에 대해서 살펴봤다. 이 글에서는 두 데이터프레임에 대한 LEFT ANTI JOIN, RIGHT ANTI JOIN... 즉, 차집합을 구하는 방법을 정리한다. 예시 데이터 예시로 아래의 데이터프레임 두 개를 사용하여 글을 작성한다. import pandas as pd df1 = pd.DataFrame( [ (1, 345, 'B', True), (2, 100, 'C', False), (3, 300, 'B', False), (4, 151, 'A', False), (5, 212, 'A', True) ],..

[Python] Pandas - read_csv 컬럼 타입 지정

개요 Pandas.read_csv 함수를 이용해 CSV 파일을 읽어 들이면 데이터의 타입을 추론하여 DataFrame을 생성한다. 그러다 보니 간혹 문자열로 저장한 네 자리 숫자의 형식이나 소수점 둘째 자리 등의 자릿수가 휘발될 때가 있다. 예시 코드 import numpy as np import pandas as pd map_code_message = [ {'code':'00','return_message':'Continue'}, {'code':'01','return_message':'Switching Protocol'}, {'code':'02','return_message':'Processing'}, {'code':'03','return_message':'Early Hints'}, ] df = pd...

1 2