일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 다이어트
- tensorflow
- ASP
- swift
- Unity
- PyQt
- javascript
- 함수
- GIT
- flutter
- pandas
- 라즈베리파이
- MySQL
- Excel
- ubuntu
- node.js
- 유니티
- mssql
- MS-SQL
- PyQt5
- port
- python
- PER
- urllib
- sqlite
- 날짜
- 리눅스
- 맛집
- IOS
- Linux
목록랭귀지/pandas (125)
아미(아름다운미소)
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'), 's..
df1 = df.groupby(by=['a'], as_index=False).max() # 또는 다른 집계 함수df['a'] = np.nan if df1['a'].isnull().any() else df1['a'].max()# 컬럼 'a'가 있고, NaN이 아닌 값이 하나라도 있으면 최대값, 아니면 np.nandf['a'] = df1['a'].max() if 'a' in df1.columns and df1['a'].notna().any() else np.nan🎯 EX)import pandas as pdimport numpy as np# 예제 1: 'a' 컬럼이 있고, NaN이 아닌 값이 존재하는 경우df1 = pd.DataFrame({'a': [3, 7, np.nan]})df = pd.DataFram..
시작# ❌ 잘못된 원래 코드 (에러 발생)df['a'] = df1['a'].agg(lambda x: np.nan if x.isnull.any() else x.max()).reset_index(drop=True)# "전체에 null이 하나라도 있으면 np.nan, 아니면 최대값"# ✅ 올바르고 간결한 코드df['a'] = np.nan if df1['a'].isnull().any() else df1['a'].max()# 결론: 맞습니다! 이게 가장 pandas다운 깔끔한 코드입니다.# 복잡한 agg() 체이닝 대신 조건부 표현식 + 자동 브로드캐스팅을 활용한 완벽한 해결책🎯 결론 : 최종선택if 'a' in df1.columns: # NaN이 아닌 값이 하나라도 있으면 최대값, 아니면 np.nan ..
df['a'] = df1['a'].agg(lambda x: np.nan if x.isnull.any() else x.max()).reset_index(drop=True)Colums must be same length as key 에러원래 코드 `df['a'] = df1['a'].agg(...)`에서 발생한 에러는 `agg()`가 단일 값을 반환하기 때문에 `df['a']`의 길이와 맞지 않아서 발생한 문제수정import pandas as pdimport numpy as np# 1. 예제 데이터 생성df = pd.DataFrame({'other_col': [10, 20, 30]}) # 타겟 DataFrame (3행)df1 = pd.DataFrame({'a': [1, np.nan, 3]}) # 소..
import pandas as pddef add_blank_category_or_fillna(series): try: if pd.api.types.is_categorical_dtype(series): # ''가 이미 포함되어 있는지 확인 if '' not in series.cat.categories: return series.cat.add_categories(['']) else: return series else: return series.fillna('') except Exception as e: print(f"예외 발생: ..
import duckdb# DuckDB DB 파일에 연결 (없으면 생성됨)con = duckdb.connect("mydata.duckdb")# CSV 파일 읽어서 테이블로 저장con.execute("""CREATE TABLE my_table ASSELECT * FROM read_csv_auto('sample.csv')""")import pandas as pdimport duckdbdf = pd.read_csv("sample.csv")# DuckDB에 저장con = duckdb.connect("mydata.duckdb")con.register("df_view", df)# DataFrame을 테이블로 저장con.execute("CREATE TABLE my_table AS SELECT * FROM df_vie..
if text is not None: text = text.replace("a", "b")else: text = "" # 또는 기본값 설정
from pynput import keyboard, mousefrom pynput.keyboard import Controller, Keyimport threadingimport timefrom datetime import datetimeimport ctypesimport os# ✅ 로그 저장 기본 디렉토리 (원하는 경로로 변경하세요)LOG_BASE_DIR = r"D:/logs"# 설정IDLE_TIME_LIMIT = 300 # 5분 이상 비활동 시CHECK_INTERVAL = 10 # 활동 체크 주기keyboard_controller = Controller()last_activity_time = time.time()# 로그 기록 함수def write_log(message): now = dat..
import numpy as npimport pandas as pdimport multiprocessing as mpfrom functools import partialdef process_chunk(df_chunk, conditions, choices, default): # 각 청크에 np.select 적용 result = np.select(conditions, choices, default=default) return pd.Series(result, index=df_chunk.index)def parallel_select(df, conditions, choices, default='default', num_processes=None): if num_processes is None..
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)})# 🔍 메모리 사용량..