일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 맛집
- pandas
- urllib
- ASP
- MS-SQL
- PyQt
- PER
- python
- 다이어트
- sqlite
- 유니티
- mssql
- swift
- flutter
- 함수
- GIT
- PyQt5
- tensorflow
- 라즈베리파이
- ubuntu
- IOS
- MySQL
- Excel
- 날짜
- Linux
- 리눅스
- javascript
- port
- Unity
- node.js
목록랭귀지/pandas (111)
아미(아름다운미소)
import pandas as pdimport numpy as np# 예시 데이터프레임 생성data = {'a': ['foo_bar', 'hello_world', 'example']} # 'example'에는 _가 없음df = pd.DataFrame(data)# numpy 배열로 변환arr = df['a'].to_numpy()# 분할 결과의 길이를 동일하게 맞추기split_list = [x.split('_') if '_' in x else [x, np.nan] for x in arr] # _가 없으면 [원본, NaN]split_arr = np.array(split_list, dtype=object) # 2차원 배열로 변환 (dtype=object로 설정)# 분할된 결과를 새로운 열로 추가df['aa..
import pandas as pdimport numpy as np# 예시 데이터 (날짜 + NaN 혼합)data = ['2023-01-01', np.nan, 'invalid_date', '2023-02-01']s = pd.Series(data)# 1. 먼저 날짜로 변환 (변환 불가능한 값은 NaT로 처리)datetime_series = pd.to_datetime(s, errors='coerce')# 2. NaT인 경우 NaN으로 대체 (또는 원하는 값으로 처리)result = np.where( pd.isna(datetime_series), np.nan, # 또는 '' / 'N/A' 등 np.datetime_as_string(datetime_series, unit='D') # YYYY..
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: 시작일이 추가된 데이터프레임 """ # 원본 데이터프레임 보존을 위해 복사 ..
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..