본문 바로가기

전체 글263

[pandsa] NaN 위치에 데이터를 끌어 올리는 방법 예제 import pandas as pd data = {'반': ['A', 'A', 'A', 'B', 'B', 'B'], '점수': [91, 90, 80, 90, 80, 70], '국어': ['김판다', float('nan'), float('nan'), '최진환', float('nan'), float('nan')], '영어': [float('nan'), '조민영', '안지선', float('nan'), '박연준', '권보아'], '수학': [float('nan'), float('nan'), '강승주', float('nan'), float('nan'), '임재범']} df = pd.DataFrame(data) NaN 위치에 데이터를 끌어 올려 다음과 같은 데이터를 만들어 보자. 이럴 때 transform .. 2024. 3. 19.
[pandas] datetime을 연도와 쿼터를 표기하는 문자열로 변환하고 싶을 때 datetime을 연도와 쿼터를 표기하는 문자열로 변환하고 싶을 때 예제 import pandas as pd df = pd.DataFrame(['2022-01-03', '2023-05-04'], columns=['date']) df['date'] = pd.to_datetime(df['date']) 쿼터를 의미하는 strftime의 %q 지시자는 datetime 자료형을 대상으로 사용할 수 없다. 해결1 to_period 함수로 period 자료형으로 변환하면 연도와 쿼터의 조합으로 표기된다. 문자열로 만들려면 결과에 astype 함수를 적용해 문자열로 변환하자 df['date'].dt.to_period('Q').astype('str') 0 2022Q1 1 2023Q2 Name: date, dtype: o.. 2024. 3. 18.
[pandas] wide_to_long 판다스 wide_to_long 가로 형식(wide) 데이터 프레임을 세로 형식(long)으로 변환하는 함수. 예제 import pandas as pd data = {'이름': ['김판다', '강승주', '조민영'], '가형_국어': [60, 69, 83], '나형_국어': [63, 79, 66], '가형_영어': [63, 81, 84], '나형_영어': [99, 96, 84]} df = pd.DataFrame(data) pd.wide_to_long( df, i='이름', stubnames=['가형', '나형'], j='과목', sep='_', suffix=r'.+' ) wide_to_long 함수의 주요 매개변수(parameter)와 인수(argument), 기본값(default) pd.wide_to_l.. 2024. 3. 15.
[pandas] date_range date_range고정된 주기를 가진 datetime 자료형 배열(DatetimeIndex)를 생성한다.   pd.date_range(start=None, end=None, periods=None, freq='D') - start : 시작 시점을 지정한다. start, end, period 셋 중에 둘만 지정해도 된다.- end : 끝 시점을 지정한다.- period : 생성할 배열의 개수를 지정한다. - freq : 배열에 적용될 고정된 주기를 지정한다.    예시) import pandas as pd# 2025-01-03부터 2025-01-14까지 모든 날짜를 배열로 생성하기pd.date_range('2025-01-03', '2025-01-14') DatetimeIndex(['2025-01-03', .. 2024. 2. 29.
[pandas] NaN이 포함된 열에서 정수를 유지하는 방법 판다스 NaN이 포함된 열에서 정수를 유지하는 방법 데이터 분석 과정에서, NaN 값을 포함한 열은 dtype이 실수(float)로 변환됩니다. 그 결과, 정수로 입력된 값이 실수 형태로 변환되어 표현됩니다. 예제:import pandas as pds = pd.Series([1, 2, 3, float('nan')]) s:0 1.0   NaN 값을 포함하는 열은 자동으로 실수형으로 변환되기 때문에, 정수를 유지할 수 없습니다. 일반적으로 NaN은 결측값을 의미하기에 반드시 NaN을 사용할 필요는 없습니다. NaN 대신 다른 null 값을 사용하면 정수를 유지할 수 있습니다. 판다스에서 제공하는 Int64 자료형을 사용하면 가능합니다. s.astype('Int64') out:0 11 .. 2024. 2. 27.
[pandas] 문자열에서 정규 표현식으로 그룹을 활용하는 방법 예제 import pandas as pd data1 = ['Home: 롯데, Away: 한화', 'Home: 삼성, Away: 기아'] s = pd.Series(data1) s 0 Home: 롯데, Away: 한화 1 Home: 삼성, Away: 기아 dtype: object 홈팀과 어웨이팀을 맞교환하자. 다양한 방법이 있겠지만, 정규 표현식으로 그룹을 나눠 해당 그룹을 맞바꾼 결과로 해결할 수 있다. 문자열 대체를 위해 str.replace 함수를 정규 표현식으로 사용하자. df['팀'].str.replace(r'Home: (.+), Away: (.+)', r'Home: \2, Away: \1', regex=True) out: 0 Home: 한화, Away: 롯데 1 Home: 기아, Away: 삼성 .. 2024. 2. 27.