일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- ASP
- python
- MS-SQL
- 유니티
- GIT
- pandas
- port
- PyQt
- 맛집
- IOS
- node.js
- 다이어트
- 리눅스
- 함수
- tensorflow
- ubuntu
- javascript
- Linux
- PyQt5
- 라즈베리파이
- 날짜
- mssql
- urllib
- PER
- flutter
- Unity
- Excel
- swift
- sqlite
- MySQL
아미(아름다운미소)
chunk_size = 1_000_000 # 청크 크기result = []for chunk in np.array_split(df, len(df) // chunk_size): chunk['date'] = pd.to_datetime(chunk['date']).dt.strftime('%Y-%m-%d') result.append(chunk)df = pd.concat(result)df['date'] = pd.to_datetime(df['date'], format='%Y-%m-%d').dt.strftime('%Y-%m-%d')import numpy as np# datetime 객체로 변환df['date'] = pd.to_datetime(df['date'])# numpy를 사용하여 문자열로 변환df['d..
import pandas as pdimport numpy as npdef p_location_vectorized(df, p_location_col): # 벡터화된 연산을 위해 numpy의 where 함수를 사용 df['return_value'] = np.where( df[p_location_col].str.contains('@'), # '@'가 포함된 경우 df[p_location_col].str.split('@').str[-1], # '@' 이후의 부분을 반환 np.where( df[p_location_col].str.contains('\\$'), # '$'가 포함된 경우 df[p_location_col].st..
import pandas as pdimport numpy as np# 예시 데이터 생성data = { 'a': ['aaa'] * 50 + ['bbb'] * 150 + ['ccc'] * 200 + ['ddd'] * 100, # 행 수를 조정 'b': ['bbb'] * 100 + ['ccc'] * 200 + ['aaa'] * 150 + ['bbb'] * 50}df = pd.DataFrame(data)# 조건에 맞는 행을 랜덤하게 추출 (최대 100개)def safe_sample(df, condition, n=100): filtered = df[condition] sample_size = min(len(filtered), n) # 조건에 맞는 행 수와 n 중 작은 값 선택 ret..
import pandas as pdimport timedef convert_to_datetime_coerce(df, column_name, date_format='%Y-%m-%d'): """ 데이터프레임의 특정 열을 datetime으로 변환합니다. errors='coerce'를 사용하여 변환할 수 없는 값을 NaT로 대체합니다. Parameters: df (pd.DataFrame): 변환할 데이터프레임 column_name (str): 변환할 열 이름 date_format (str): 날짜 형식 (기본값: '%Y-%m-%d') Returns: pd.DataFrame: 변환된 데이터프레임 """ start = time...
# 다른 부분을 나란히 비교diff_result = pd.concat([df[diff], df2[diff]], axis=1, keys=['df_a', 'df2_a'])print(diff_result)
import pandas as pddef days_to_timedelta(days: float) -> pd.Timedelta: return pd.Timedelta(days=days)import mathfrom datetime import timedeltadef convert_days_to_timedelta(f_day: float) -> timedelta: total_seconds = f_day * 86400.0 # 24*60*60 days, remainder_seconds = divmod(total_seconds, 86400) seconds, microseconds = divmod(round(remainder_seconds * 1_000_000), 1_000_000) retu..
import pandas as pdimport numpy as npdef calculate_week_start(df, week_code_col, output_col='start_datetime'): """ 주차 코드를 시작일로 변환하는 함수 (성능 최적화 버전). Parameters: df (pd.DataFrame): 입력 데이터프레임 week_code_col (str): 주차 코드 컬럼명 (예: "202401A") output_col (str): 결과 컬럼명 (기본값: "start_datetime") Returns: pd.DataFrame: 시작일이 추가된 데이터프레임 """ # 원본 데이터프레임 보존을 위해 복사 ..
def write_limited_lines(file_path, new_line, max_lines=5): # 기존 파일 읽기 try: with open(file_path, "r", encoding="utf-8") as f: lines = f.readlines() except FileNotFoundError: lines = [] # 기존 내용에서 마지막 (max_lines - 1) 줄만 유지 lines = lines[-(max_lines - 1):] # 새로운 줄 추가 lines.append(new_line + "\n") # 파일 다시 쓰기 with open(file_path, "w", encoding="utf..
import pandas as pd# 샘플 데이터 생성data1 = { 'id': [1, 2, 3, 4, 5], 'name': ['Alice', 'Bob', 'Charlie', 'David', 'Eva'], 'age': [25, 30, 35, 40, 45], 'city': ['New York', 'Los Angeles', 'Chicago', 'Houston', 'Phoenix']}data2 = { 'id': [1, 2, 3, 4, 5], 'name': ['Alice', 'Bob', 'Charlie', 'Daniel', 'Eva'], # 'David' -> 'Daniel' 'age': [25, 30, 35, 40, 50], # 45 -> 50 'city': [..
import pandas as pd# 샘플 데이터 범위 확장 (년도가 바뀌는 경우 포함)data = { 'date': pd.date_range(start='2023-12-20', periods=20, freq='D'), # 2023-12-20부터 20일간 'value': range(100, 2100, 100) # 100부터 2000까지 100씩 증가}df = pd.DataFrame(data)# 주차(week) 컬럼 추가 (ISO 주차 기준)df['week'] = df['date'].dt.isocalendar().weekdf['year'] = df['date'].dt.isocalendar().year # 연도 정보 추가# 조건: value가 500보다 큰 경우condition = df['v..