Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- flutter
- Excel
- PyQt
- IOS
- GIT
- Linux
- Unity
- 리눅스
- MS-SQL
- 함수
- urllib
- javascript
- mssql
- 맛집
- 다이어트
- MySQL
- port
- PyQt5
- tensorflow
- PER
- 유니티
- 날짜
- ASP
- swift
- 라즈베리파이
- node.js
- ubuntu
- pandas
- sqlite
- python
Archives
아미(아름다운미소)
dataframe 타입지정 본문
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'),
'bool': lambda s: s.astype(str).str.lower().isin(['true', 't', '1']),
'datetime': lambda s: pd.to_datetime(s, errors='coerce'),
'string': lambda s: s.astype('string').fillna(''), # 빈 문자열로 채우기
'category': lambda s: s.fillna('').astype('category') # 빈 문자열로 채우기
}
# 교집합으로 존재하는 컬럼만 선택 (속도 향상)
valid_cols = set(df.columns) & set(dict_df_types.keys())
# 한 번에 모든 컬럼 처리 (assign 사용)
return df.assign(**{
col: type_handlers[dtype](df[col])
for col, dtype in dict_df_types.items()
if col in valid_cols and dtype in type_handlers
})
'랭귀지 > pandas' 카테고리의 다른 글
pandas cross join (0) | 2025.08.01 |
---|---|
그룹별 최신 유효값으로 결측값 채우기 (2) | 2025.07.31 |
컬럼 유무 및 NaN 검사를 고려한 안전한 최대값 추출 (0) | 2025.07.26 |
전체에 null이 하나라도 있으면 np.nan, 아니면 최대값 (1) | 2025.07.25 |
길이 불일치 (0) | 2025.07.25 |
Comments