본문 바로가기

Python/Python FAQ540

Python 서브스트링의 모든 발생을 찾는 방법은 무엇인가요?, How to find all occurrences of a substring? 질문 파이썬에는 string.find()과 string.rfind()가 있어 문자열에서 부분 문자열의 인덱스를 가져올 수 있습니다. string.find_all()과 같이 모든 찾은 인덱스를 반환할 수 있는 함수가 있는지 궁금합니다 (시작부터 첫 번째 또는 끝에서 첫 번째만 반환하는 것이 아니라). 예를 들어: string = "test test test test" print string.find('test') # 0 print string.rfind('test') # 15 # 이게 목표입니다 print string.find_all('test') # [0,5,10,15] 발생 횟수를 계산하려면 문자열에서 부분 문자열의 발생 횟수 세기를 참조하세요. 답변 원하는 기능을 수행하는 간단한 내장 문자열 함수는 .. 2023. 9. 16.
Python 판다스 열의 값을 사전으로 다시 매핑하고 NaN을 보존합니다., Remap values in pandas column with a dict, preserve NaNs 질문 다음과 같은 딕셔너리가 있습니다: di = {1: "A", 2: "B"} 이를 다음과 같은 데이터프레임의 col1 열에 적용하고 싶습니다: col1 col2 0 w a 1 1 2 2 2 NaN 다음과 같이 결과를 얻고 싶습니다: col1 col2 0 w a 1 A 2 2 B NaN 어떻게 가장 잘 할 수 있을까요? 답변 .replace를 사용할 수 있습니다. 예를 들어: >>> df = pd.DataFrame({'col2': {0: 'a', 1: 2, 2: np.nan}, 'col1': {0: 'w', 1: 1, 2: 2}}) >>> di = {1: "A", 2: "B"} >>> df col1 col2 0 w a 1 1 2 2 2 NaN >>> df.replace({"col1": di}) col1 .. 2023. 9. 16.
Python 사전을 데이터프레임으로 변환하세요., Convert Python dict into a dataframe 질문 나는 Python 사전을 가지고 있습니다: {u'2012-06-08': 388, u'2012-06-09': 388, u'2012-06-10': 388, u'2012-06-11': 389, u'2012-06-12': 389, u'2012-06-13': 389, u'2012-06-14': 389, u'2012-06-15': 389, u'2012-06-16': 389, u'2012-06-17': 389, u'2012-06-18': 390, u'2012-06-19': 390, u'2012-06-20': 390, u'2012-06-21': 390, u'2012-06-22': 390, u'2012-06-23': 390, u'2012-06-24': 390, u'2012-06-25': 391, u'2012-06-.. 2023. 9. 16.
Python 일부 함수들은 왜 함수 이름 앞뒤에 언더스코어 "__"가 있는 걸까요?, Why do some functions have underscores "__" before and after the function name? 질문 이 "밑줄"은 자주 발생하는 것 같은데, 이것은 파이썬 언어의 요구사항인지 아니면 단지 관습의 문제인지 궁금했습니다. 또한, 어떤 함수들이 밑줄을 가지고 있는지 그리고 왜 (__init__ 같은) 밑줄을 가지고 있는지 이름과 설명을 알려주실 수 있을까요? 답변 파이썬 PEP 8 -- 파이썬 코드 스타일 가이드에서 다음을 발췌: 기술적: 네이밍 스타일 다음과 같은 선행 또는 후행 밑줄을 사용한 특수 형식이 인식됩니다 (이러한 형식은 일반적으로 모든 케이스 규칙과 결합될 수 있음): _single_leading_underscore: 약한 "내부 사용" 표시자입니다. 예를 들어 from M import *은 밑줄로 시작하는 객체를 가져오지 않습니다. single_trailing_underscore_: 파.. 2023. 9. 16.