일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 라즈베리파이
- 다이어트
- PyQt
- mssql
- Unity
- pandas
- python
- tensorflow
- sqlite
- 유니티
- 함수
- port
- 리눅스
- javascript
- swift
- ASP
- GIT
- MySQL
- ubuntu
- Excel
- PER
- flutter
- IOS
- 맛집
- MS-SQL
- urllib
- 날짜
- Linux
- node.js
- PyQt5
목록랭귀지/pandas (126)
아미(아름다운미소)
cols = ['col1', 'col2', 'col3'] # category로 바꿀 컬럼 리스트df[cols] = df[cols].apply(lambda x: x.astype('category'))import pandas as pdimport numpy as np# 예시 데이터 생성df = pd.DataFrame({ 'col1': np.random.choice(['apple', 'banana', 'cherry'], 1_000_000), 'col2': np.random.choice(['red', 'green', 'blue'], 1_000_000), 'col3': np.random.choice(['small', 'medium', 'large'], 1_000_000)})# 🔍 메모리 사용량..
import pandas as pddf1 = pd.DataFrame({'A': [1, 2], 'B': [3, 4]}, index=['x', 'y'])df2 = pd.DataFrame({'A': [5, 6], 'C': [7, 8]}, index=['x', 'y'])# Left join with drop=Falseresult = df1.join(df2.set_index('A', drop=False), how='left', # 명시적으로 left join 지정 lsuffix='_left', rsuffix='_right')print(result)
from concurrent.futures import ThreadPoolExecutorimport numpy as npimport pandas as pddef safe_parallel_merge(df1, df2, left_key, right_key=None, n_partitions=4, how='left'): """ 개선된 병렬 merge 함수 - 안정성 강화 버전 Parameters: - df1: 왼쪽 DataFrame - df2: 오른쪽 DataFrame - left_key: df1의 조인 키 (컬럼명 또는 컬럼 리스트) - right_key: df2의 조인 키 (None이면 left_key와 동일) - n_partitions: 분할 개수 - ..
import pandas as pddef convert_object_columns_to_str(df: pd.DataFrame) -> pd.DataFrame: """ Pandas DataFrame에서 object 타입 컬럼을 모두 문자열(str)로 변환합니다. Parameters: df (pd.DataFrame): 변환할 DataFrame Returns: pd.DataFrame: 문자열 컬럼이 str 타입으로 변환된 DataFrame """ df = df.copy() for col in df.select_dtypes(include='object').columns: df[col] = df[col].astype(str) ..
import pandas as pd# 샘플 DataFrame 생성df = pd.DataFrame({'A': [1, 2, None, 4], 'B': ['x', None, 'z', 'w']})# 1. len() 함수 사용 (가장 일반적)row_count = len(df)print(f"행 수 (len): {row_count}")# 2. shape 속성 사용row_count = df.shape[0] # shape는 (행수, 열수) 튜플 반환print(f"행 수 (shape): {row_count}")# 3. index 길이 확인row_count = df.index.sizeprint(f"행 수 (index): {row_count}")# 4. 각 열별 결측값(None/NaN) 개수 확인print("\n각 열별 결..
import pandas as pd# Parquet 파일 읽기df = pd.read_parquet('example.parquet')# 전체 데이터 출력print("전체 데이터:")print(df)# 상위 5행 출력print("\n상위 5행:")print(df.head())# 데이터 구조 확인print("\n데이터 구조:")print(df.info())# 기술 통계 정보print("\n기술 통계:")print(df.describe())
예제1import pandas as pd# --------------------------------------------# 1. 샘플 데이터 생성# --------------------------------------------df = pd.DataFrame({ 'a': [1, 2, 3, 4], 'b': ['A', 'B', 'C', 'D'], 'c': [10, 20, 30, 40]})df2 = pd.DataFrame({ 'a': [1, 2, 3, 5], 'b': ['A', 'X', 'C', 'E'], 'c': [10, 20, 30, 50]})# --------------------------------------------# 2. 비교 방법 구현# ------------..
최적화 최존def process_dataframe_optimized(dict_df_types, df): type_handlers = { 'int': lambda s: pd.to_numeric(s, errors='coerce').fillna(0).astype('int32'), 'float': lambda s: pd.to_numeric(s, errors='coerce').fillna(0).astype('float32'), # float32로 변경 'bool': lambda s: s.astype(str).str.lower().isin(['true', 't', '1']), # 더 넓은 불리언 조건 'datetime': lambda s: pd.to_dat..
# 날짜 변환 (NULL → NaT)dates = pd.to_datetime(df['a'], errors='coerce')if not dates.empty and not pd.isna(dates.iloc[0]): first_date = dates.iloc[0]else: first_date = pd.to_datetime('today') # 기본값 설정
index.duplicated() 메서드 사용# 중복된 인덱스 위치 확인duplicated = df.index.duplicated(keep='first') # 첫 번째 발생은 False, 이후 중복은 Trueprint(duplicated)# 출력: [False False True False]# 중복된 인덱스 값 확인duplicated_values = df.index[df.index.duplicated()]print(duplicated_values)# 출력: Index(['b'], dtype='object')value_counts()로 중복 횟수 확인# 각 인덱스 값의 발생 횟수 확인index_counts = df.index.value_counts()print(index_counts)# 출력:# b ..