파이썬(Python)&판다스(Pandas)&Polars 25

[Python] JSON의 모든 key, value를 재귀적으로 탐색해서 데이터프레임으로 만들기

import jsonimport pandas as pddef flatten_json(d, parent_key="", results=[]): """ JSON 또는 딕셔너리 데이터를 평평한 구조로 변환하고, 키-값 쌍을 데이터프레임으로 저장합니다. Args: d (dict or json): JSON 또는 딕셔너리 데이터 parent_key (str): 상위 키 (재귀 호출 시 사용) results (list): 데이터프레임에 저장될 결과 목록 Returns: pandas.DataFrame: 키-값 쌍을 포함하는 데이터프레임 """ if isinstance(d, dict): for k..

[polars] 데이터프레임의 결측값을 리스트 형태로 추출하고 변환 (null_count, to_list)

# 1. 데이터프레임의 null 값 개수 계산 null_count = df.null_count() # 2. Series 객체의 첫 번째 행만 추출 head_row = null_count.head(1) # 3. 첫 번째 행의 첫 번째 값만 추출 (리스트 형태) value = [value[0] for value in head_row] # 4. 리스트를 변환하여 최종 결과 반환 result = pl.Series(value).to_list() # 한번에 조합한 코드 pl.Series([value[0] for value in df.null_count().head(1)]).to_list() data.null_count() 함수를 사용하여 데이터프레임의 각 컬럼에 대한 null 값의 개수를 계산함 이 때, 출력값은 ..

[polars] 데이터 EDA 코드 만들기 (컬럼수, 행수, 결측값 등)

Polars 라이브러리를 사용하여 데이터 탐색적 분석(EDA) 코드를 만드는 방법을 소개합니다. 특히, 컬럼 수, 행 수, 결측값 수 등 기본적인 EDA 정보를 계산하는 코드를 다룹니다. import chardet #polars import polars as pl file_name = "데이터 경로" charenc = detect_enc(file_name) # open file data = pl.read_csv(file_name, encoding = charenc, ignore_errors= True, low_memory=False, truncate_ragged_lines = True, infer_schema_length=0) # 컬럼명 column_list = list(data.columns) # 컬럼..

[Python] mp4를 mp3로 변환하기 (moviepy)

영상의 음성만 추출해서 번역하거나, 자막을 만들고 싶어서 찾아본 라이브러리 중 moviepy 사용 단순 음성 추출용으로 사용했지만, 비디오의 비율이나 속도를 조절할 수 있는 라이브러리라서 추후에 간단히 사용하기 좋을 것 같습니다. 설치 터미널에서 pip로 설치함 pip install moviepy 사용 예시 from moviepy.editor import * video = VideoFileClip("test.mp4") # 사용할 mp4 불러오기 video = video.speedx(1.5) # 1.5배속 video.audio.write_audiofile("test.mp3") # 1.5배속한 영상을 mp3로 변환하기 -> 로컬에 저장됨 참고자료 https://dev.to/jimajs/how-to-conve..

[Python&Pandas] 유사한 문자열을 매칭하는 파이썬 라이브러리(difflib)

Python에서는 difflib 라이브러리와 pandas 라이브러리를 활용하여 비슷한 문자열을 매칭할 수 있다. 데이터프레임에서 difflib을 사용한 문자열 매칭 예를 들어 df1의 '주소' 컬럼이 있고, '서울특별시 관악구 남부순환로'라는 값이 있다. 그리고, 내가 매칭하려는 값은 '서울특별시 남부순환로'라면, str.contains는 띄어쓰기를 포함하기 때문에 찾을 수 없다. difflib 라이브러리는 시퀀스 데이터를 비교하고 찾는 데에 사용됨. 특히 get_close_matches 함수는 비슷한 문자열을 찾을 수 있다. import difflib import pandas as pd # 가상의 데이터프레임 생성 data = {'주소': ['서울특별시 관악구 남부순환로', '서울특별시 강남구 테헤란로..

[Pandas] 두 개의 데이터프레임에서 특정 문자열이 포함된 행 제거하기(~, isin)

판다스(Pandas)를 사용하여 데이터를 다루다 보면 두 개의 데이터프레임을 조합하거나 특정 조건을 충족하는 행을 제거하는 작업이 필요할 때가 있다. 이번 글에서는 두 데이터프레임을 비교하여 특정 문자열이 포함된 행을 제거하는 방법을 소개한다. 코드 설명 # 필요한 라이브러리 불러오기 import pandas as pd # 두 개의 데이터프레임 생성 (예시 데이터) df1 = pd.DataFrame({'기관명': ['기관1', '기관2', '기관3', '기관4'], '값': [1, 2, 3, 4]}) df2 = pd.DataFrame({'기관명': ['기관2', '기관4'], '값': [10, 20]}) # df2의 기관명이 포함된 행 제거 df3 = df1[~df1['기관명'].isin(df2['기관명..

[Pandas] 빈 값(NaN, None)에 원하는 값 채우기(pd.where)

pd.where(조건문, 실행문) 형태로 빈 값에 원하는 값을 채울 수 있다. np.nan와 None을 통일시키고 싶을 때 사용할 수 있음 df = df.where(pd.notnull(df), None) where를 사용해서 다양한 조건문으로 데이터를 조작할 수 있음 >>> s = pd.Series(range(5)) >>> s.where(s > 0) 0 NaN 1 1.0 2 2.0 3 3.0 4 4.0 dtype: float64 >>> s.mask(s > 0) 0 0.0 1 NaN 2 NaN 3 NaN 4 NaN dtype: float64 아래 공식문서를 참고 https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.where.html pandas.D..

[Python] 변수명을 for문으로 할당하기 - globals()

전역변수를 활용하면 가능하다. 예를 들어, 시도명 또는 시도코드마다 데이터 프레임을 만들고 싶을 때 아래와 같은 코드를 사용할 수 있음 global()[변수명] sido_code_list = { '11': '서울', '51': '강원', '41': '경기', '48': '경남', '47': '경북', '29': '광주', '27': '대구', '30': '대전', '26': '부산', '36': '세종', '31': '울산', '28': '인천', '46': '전남', '45': '전북', '50': '제주', '44': '충남', '43': '충북' } for code, sido in sido_code_list.items(): # 동적으로 변수명 생성 df_name = f"df_{code}" #df_1..