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 | 31 |
Tags
- MS-SQL
- 리눅스
- node.js
- tensorflow
- Excel
- 다이어트
- PyQt5
- javascript
- MySQL
- flutter
- python
- Unity
- sqlite
- swift
- Linux
- PER
- port
- pandas
- IOS
- ubuntu
- urllib
- 유니티
- 날짜
- 함수
- ASP
- GIT
- mssql
- PyQt
- 맛집
- 라즈베리파이
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' 카테고리의 다른 글
None처리 (1) | 2025.07.31 |
---|---|
컬럼 유무 및 NaN 검사를 고려한 안전한 최대값 추출 (0) | 2025.07.26 |
전체에 null이 하나라도 있으면 np.nan, 아니면 최대값 (1) | 2025.07.25 |
길이 불일치 (0) | 2025.07.25 |
카테고리타입 (1) | 2025.07.25 |
Comments