프로그래밍 38

[python] isdigit, isnumeric, isdecimal, isalpha, isalnum 함수로 문자 숫자 확인하기

Python isdigit 함수 isdigit 함수는 문자열이 숫자로만 이루어져 있는지 여부를 확인하는 메서드입니다. 이 함수는 문자열 내의 모든 문자가 숫자 문자(0-9)로만 구성되어 있을 때 True를 반환하고, 그렇지 않을 경우 False를 반환합니다. 사용법 text = "12345" result = text.isdigit() print(result) # 출력: True주의 사항 isdigit 함수는 문자열이 모든 문자가 숫자인지를 검사합니다. 따라서 소수점, 음수 기호, 지수 표기법 등의 추가 문자가 있는 경우 False를 반환합니다. 공백 문자 또는 다른 문자(예: "$", ",", "A" 등)가 포함되어 있으면 isdigit 함수는 False를 반환합니다. text1 = "12345" tex..

[python] zip() 내장함수 활용예제

zip은 파이썬의 내장 함수 중 하나로, 여러 개의 iterable(반복 가능한 객체)을 받아서 해당 iterable들에서 동일한 위치에 있는 요소들을 묶어 새로운 iterable을 생성합니다. 각 입력 iterable의 길이가 다를 경우, zip은 가장 짧은 iterable의 길이에 맞춰 짝을 지어줍니다. zip(iterable1, iterable2, ...) 여기서 iterable1, iterable2, ...은 두 개 이상의 iterable 객체를 나타내며, zip 함수는 이러한 iterable들을 조합하여 새로운 iterable을 생성합니다. 예제 1: 두 리스트 묶기 names = ['Alice', 'Bob', 'Charlie'] scores = [90, 85, 88] zipped = zip(n..

[python] list를 정렬하는 sort, sorted 함수 차이?

Python에서 sort와 sorted 함수는 둘 다 리스트를 정렬하는 데 사용되는 함수입니다. 그러나 이 두 함수 간에 중요한 차이점이 있습니다. sort 함수: sort 함수는 리스트를 제자리에서(in-place) 정렬합니다. 즉, 원래의 리스트를 변경하고 새로운 리스트를 생성하지 않습니다. sort 함수는 아무것도 반환하지 않습니다. 정렬된 결과는 원래 리스트에 적용됩니다. my_list = [3, 1, 2] my_list.sort() print(my_list) # 출력: [1, 2, 3] sorted 함수: sorted 함수는 원래 리스트를 변경하지 않고 새로운 정렬된 리스트를 반환합니다. 정렬된 결과를 다른 변수에 할당하여 사용할 수 있습니다. my_list = [3, 1, 2] sorted_l..

문자열 다루기 - strip 함수, split 함수 차이

strip 함수 주어진 문자열의 양 끝에서 특정 문자나 공백을 제거 문자열을 수정하지 않고 새로운 문자열을 반환 괄호 안에 특정 값을 넣을 경우에는 해당하는 문자열을 제거 strip 함수에는 rstrip, lstrip, strip으로 총 3가지 rstrip은 오른쪽에 있는 것만(공백 or 특정 문자) 제거하고, lstrip은 왼쪽에 있는 것만 제거하고, strip은 양쪽 다 제거한다. text = "^ Hello, World! ^" stripped_text = text.strip('^') lstripped_text = text.lstrip('^') rstripped_text = text.rstrip('^') print(text) print(stripped_text) print(lstripped_text)..

break, continue, pass, exit 사용법

for 문, while 문 등 흐름 구문을 제어할 때 쓰는 녀석들이다. break 반복문 중단, 다중 반복문인 경우에는 가장 가까운 반복문 하나만 빠져나옴 for i in range(5): if i == 3: break print(i) 0 1 2 continue 현재 반복문 중단, 다음 반복문 진행 for i in range(5): if i == 2: continue print(i) 0 1 3 4 pass pass문은 아무작업도 하지 않고 코드 블록 무시 주로 나중에 구현할 함수나 클래스 정의시 사용 def some_function(): pass for i in range(1, 11): if i % 2 == 0: # 짝수인 경우, 아무런 명령문도 수행하지 않는다. pass else: print(f'{i}..

[PySpark] 오버샘플링(oversampling), 언더샘플링(undersampling)

기계 학습에서 불균형 훈련 데이터 세트로 분류 문제를 다룰 때 오버 샘플링과 언더 샘플링은 결과를 개선하는 두 가지 쉽고 종종 효과적인 방법이다. 1.불균형(imbalanced) 데이터란? 데이터셋의 한 클래스(레이블) 수가 다른 클래스보다 상당히 많거나 적을때 데이터의 클래스가 불균형 상태라고 말한다. '불균형'이라는것이 상당히 분석가나 과학자의 입장에서 주관적인 판단이 개입된다. 그리고 실제 문제를 ML(머신러닝, 기계학습)으로 해결할 때 깔끔하게 균형잡힌 데이터를 만나기는 힘들다. (예를들어, 이상치 탐지, 사기탐지 데이터, 질병 데이터 등) 머신러닝 모델은 맹목적으로 다수의 클래스를 대부분 학습하기 때문에 대다수 예측 데이터를 학습된 다수의 클래스로 예측하려는 경향이 있다. 그렇기 때문에, 소수 ..

[PySpark] round(반올림), ceil(올림), floor(내림) 함수로 소수점 자리까지 다루기

PySpark를 사용하여 DataFrame의 특정 컬럼을 반올림, 올림 또는 내림하는 방법은 round(), ceil(), floor() 함수를 사용한다. PySpark의 ceil 및 floor 함수는 기본적으로 특정 소수 자릿수에서 동작하지 않는다. 특정 소수 자릿수에서 올림 또는 내림을 수행하려면 먼저 원하는 소수 자릿수로 값을 곱한 다음, 올림 또는 내림한 후에 다시 나누는 방법을 사용해야 한다. 즉, 원하는 자릿수 만큼 곱해서 올림이나 내린 다음에 다시 자릿수 만큼 나눠주는 작업이 필요하다. 0.참고사항 from pyspark.sql.functions import expr # DataFrame에서 "value" 컬럼을 소수점 둘째 자리로 올림 df = df.withColumn("ceiled_val..

[PySpark] 특정(여러) 문자열(strings)이 포함된 데이터 필터로 뽑아내기.

우선 데이터 프레임 내에서 한 string 스키마 구조의 컬럼에서 특정 문자열이 포함된 데이터를 filter로 걸러내는 코드는 아래와 같다. 아래에서는 search strings list에 있는 단어들을 포함하고 있는 데이터를 뽑아내는 방법이다. 여러 단어들이 아닌 한 단어를 포함하고 있는 데이터를 뽑고자 할때는 reduce 함수를 쓸 필요 없이 아래와 같이 pyspark 내장함수를 활용하면 된다. df.filter(col("col1").contains("기내용")) - 기내용이 포함된 데이터 산출 df.filter(~col("col1").contains("기내용")) - 기내용이 포함되지 않은 데이터 산출 from pyspark.sql import SparkSession from pyspark.sql...

[PySpark] 학습된 로지스틱 모형의 계수 확인하기.

우선, 모델의 학습에 필요한 train, test 셋이 있다는 가정하에 다음과 같이 3차 교호법(3 fold crossvaildaition)을 통해 로지스틱 모형을 학습하고 test 데이터 셋에 스코어링 하는 코드이다. pyspark에서 로지스틱 모형의 파라미터 옵션은 https://runawayhorse001.github.io/LearningApacheSpark/reg.html 10. Regularization — Learning Apache Spark with Python documentation 10. Regularization In mathematics, statistics, and computer science, particularly in the fields of machine learning..

파이썬 list에서 특정 문자열을 포함하는지 확인하고 제거하기.

1.특정문자열 포함 확인 파이썬에서 리스트 내에 특정 문자열을 포함하는지 확인하는 방법은 다음 네가지를 고려할 수 있다. 대소문자를 무시하려면 비교시 대문자 또는 소문자로 통일후 진행 1) 반복문 사용 def contains_string(lst, target): for item in lst: if target in item: return True return False my_list = ["apple", "banana", "cherry"] target_string = "bana" result = contains_string(my_list, target_string) print(result) # True 2) any() 함수와 list 컴프리헨션 사용 my_list = ["apple", "banana", ..