일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- urllib
- ASP
- PyQt
- node.js
- python
- 리눅스
- mssql
- PyQt5
- sqlite
- IOS
- GIT
- 함수
- swift
- Linux
- ubuntu
- MS-SQL
- PER
- flutter
- Excel
- javascript
- 유니티
- 날짜
- port
- 라즈베리파이
- MySQL
- Unity
- 맛집
- pandas
목록분류 전체보기 (1016)
아미(아름다운미소)
import pandas as pd# 예시 데이터프레임 생성 (실제 사용시에는 주석 처리)data = { 'a': [1, 1, 1, 2, 2, 2], 'b': ['x', 'x', 'y', 'y', 'y', 'y'], 'c': [10, 10, 20, 20, 20, 30], 'd': [100, 100, 200, 300, 300, 400]}df = pd.DataFrame(data)# 그룹별로 d 컬럼의 최빈값 계산 (동률일 경우 최소값 선택)result = df.groupby(['a', 'b', 'c'])['d'].agg( lambda x: x.mode().min() if not x.mode().empty else None).reset_index()print(result)
import pandas as pd# 예제 데이터 생성df1 = pd.DataFrame({ 'a': [1, 2, 3], 'b': ['x', 'y', 'z'], 'c': [0.1, 0.2, 0.3]})df2 = pd.DataFrame({ 'd': [10, 20]})# 크로스 조인 수행 (방법 1)cross_join = df1.assign(key=1).merge(df2.assign(key=1), on='key').drop('key', axis=1)# 크로스 조인 수행 (방법 2 - pandas 1.2.0+)cross_join = df1.merge(df2, how='cross')print(cross_join)
**✅ 기능**: 주어진 데이터프레임에서 지정한 그룹 컬럼 기준으로, **유효한 값이 있는 가장 최신 주차의 데이터**로 결측값을 채웁니다. **🛡️ 안전성**: 최신 주차 값이 `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]}) # 소..