일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- flutter
- 맛집
- IOS
- pandas
- 라즈베리파이
- urllib
- node.js
- PyQt5
- swift
- 함수
- mssql
- MS-SQL
- tensorflow
- 날짜
- Unity
- PyQt
- javascript
- ASP
- PER
- sqlite
- port
- 다이어트
- 리눅스
- ubuntu
- python
- 유니티
- GIT
- Linux
- MySQL
- Excel
목록2025/07 (15)
아미(아름다운미소)
**✅ 기능**: 주어진 데이터프레임에서 지정한 그룹 컬럼 기준으로, **유효한 값이 있는 가장 최신 주차의 데이터**로 결측값을 채웁니다. **🛡️ 안전성**: 최신 주차 값이 `NaN`이어도 그 다음 최신 유효값을 자동으로 찾아 처리합니다.import pandas as pdimport numpy as np# ------------------------------# 1. 예제 데이터 생성# ------------------------------df = pd.DataFrame({ 'a': ['x', 'x', 'x', 'x', 'y', 'y'], # 그룹 컬럼 1 'b': ['u', 'u', 'u', 'u', 'v', 'v'], # 그룹 컬럼 2 'c': ['p', 'p', 'p',..
.max(['d'])max()는 aggregation 함수인데, 여기에 리스트 ['d']를 넘기면 의미가 없음→ 이는 Pandas 내부적으로 무시되며, numeric_only=True인 기본 동작으로 numeric 컬럼만 집계합니다.따라서 d가 숫자형이 아닌 경우나 f만 숫자형이라면 d는 사라집니다.
.max(['d'])max()는 aggregation 함수인데, 여기에 리스트 ['d']를 넘기면 의미가 없음→ 이는 Pandas 내부적으로 무시되며, numeric_only=True인 기본 동작으로 numeric 컬럼만 집계합니다.따라서 d가 숫자형이 아닌 경우나 f만 숫자형이라면 d는 사라집니다.
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..
cd ~/StudioProjects/stock-flutterflutter cleanflutter pub getcd android./gradlew --stop./gradlew cleancd ..flutter run -d emulator-5554
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..