python 7

[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 = {'주소': ['서울특별시 관악구 남부순환로', '서울특별시 강남구 테헤란로..

[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..

[postgreSQL] 한글 TXT 또는 CSV 데이터 import하기

Ubuntu 20.04의 터미널 환경에서 직접 실행하는 경우 DB서버 내 경로를 인식할 수 있음 postgres@ubuntu:~$ export PGCLIENTENCODING='uhc' postgres@ubuntu:~$ psql test_db test_db=> set client_encoding='UHC'; #일회용 세션 # 우분투 서버 내의 파일경로 입력 test_db=> \copy test FROM '/home/data/test.txt' CSV DELIMITER '|'; # 헤더 없는 경우, 헤더 있을 시에는 `HEADER` 추가 >> COPY 193765 # 결과 set client_encoding 영구 설정 postgreSQL의 configration 수정해야함 우분투에서 apt로 설치한 경우, /..

개발일지 2023.09.15

[Python] 여러 딕셔너리(dictionary)를 하나의 딕셔너리로 합치기

**는 Python에서 unpacking operator로 사용됩니다. 딕셔너리 unpacking을 할 때, **를 사용하면 딕셔너리 안의 key-value 쌍들을 분리해서, 해당 key와 value를 변수들에 각각 할당할 수 있다. 예를 들어, 다음과 같이 두 개의 딕셔너리를 하나로 합치고 싶을 때, dict1 = {'a': 1, 'b': 2} dict2 = {'c': 3, 'd': 4} **를 사용하여 unpacking하면 다음과 같이 작성할 수 있다. combined_dict = {**dict1, **dict2} print(combined_dict) # {'a': 1, 'b': 2, 'c': 3, 'd': 4} 이처럼 **를 사용하면 여러 개의 딕셔너리를 하나로 합치기 쉬워지며, 만약 키 값이 중복..

[Pandas] literal_eval - 문자열 리스트를 list type으로 변환하기

데이터 프레임을 다룰 때, 특정 컬럼의 형태가 아래 그림과 같이 형성된 경우가 있다. 하나의 셀에 리스트 형태로 들어있는 문자열이 있으면, type이 str로 인식하기 때문에 이 컬럼을 for문 등의 조건문을 사용할 수 없다. 이를 해결하기 위한 방법으로 ast.literal_eval 함수를 사용할 수 있다. 하나의 문자열만 해결하는 것 보단, 데이터프레임 수준에서 적용할 수 있는 코드를 공유하고자 한다. 데이터프레임의 특정 컬럼의 모든 셀을 한번에 변환하기 위해선, 예외 처리를 포함한 함수를 만들어 lambda를 적용하는 것이 좋다. 아래 코드는, str_to_list(x) 함수를 만들었고, 특정 컬럼에 apply와 lambda를 사용했다. import pandas as pd from ast impor..

[Pandas] '', NaN 값을 None으로 변환하기

데이터 전처리를 위해서, 조건절에서 None을 기준으로 데이터를 판단하는 경우가 많다. 하지만, Pandas로 데이터프레임을 불러오는 과정에서 Null 값의 처리가 제대로 되지않으면 원하는 결과를 낼 수 없다. 보통 np.NaN 또는 None을 기준으로 null 값 처리하기 때문에 이 글은 None값 처리를 하는 코드의 예시이다. import pandas as pd import numpy as np # 데이터 불러오기 path = r'파일경로' df = pd.read_csv(path,keep_default_na=False, # 빈 값은 None값으로 불러오기 na_values = ['?', '??', 'N/A', 'NA', 'nan', 'NaN', '-nan', '-NaN', 'null','None', ..