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
- node.js
- MySQL
- sqlite
- python
- 유니티
- 라즈베리파이
- tensorflow
- 맛집
- PER
- urllib
- Unity
- MS-SQL
- 리눅스
- pandas
- Linux
- javascript
- PyQt5
- mssql
- flutter
- 날짜
- swift
- PyQt
- IOS
- 다이어트
- 함수
- port
- GIT
- ubuntu
- Excel
- ASP
Archives
아미(아름다운미소)
컬럼 유무 및 NaN 검사를 고려한 안전한 최대값 추출 본문
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.nan
df['a'] = df1['a'].max() if 'a' in df1.columns and df1['a'].notna().any() else np.nan
🎯 EX)
import pandas as pd
import numpy as np
# 예제 1: 'a' 컬럼이 있고, NaN이 아닌 값이 존재하는 경우
df1 = pd.DataFrame({'a': [3, 7, np.nan]})
df = pd.DataFrame(index=range(3)) # 결과를 저장할 df (빈 3행짜리)
# 적용
df['a'] = df1['a'].max() if 'a' in df1.columns and df1['a'].notna().any() else np.nan
print("예제 1 결과:\n", df)
# 예제 2: 'a' 컬럼이 있지만 모든 값이 NaN인 경우
df1 = pd.DataFrame({'a': [np.nan, np.nan]})
df = pd.DataFrame(index=range(3))
df['a'] = df1['a'].max() if 'a' in df1.columns and df1['a'].notna().any() else np.nan
print("\n예제 2 결과:\n", df)
# 예제 3: 'a' 컬럼이 존재하지 않는 경우
df1 = pd.DataFrame({'b': [1, 2, 3]})
df = pd.DataFrame(index=range(3))
df['a'] = df1['a'].max() if 'a' in df1.columns and df1['a'].notna().any() else np.nan
print("\n예제 3 결과:\n", df)
'랭귀지 > pandas' 카테고리의 다른 글
그룹별 최신 유효값으로 결측값 채우기 (2) | 2025.07.31 |
---|---|
dataframe 타입지정 (1) | 2025.07.30 |
전체에 null이 하나라도 있으면 np.nan, 아니면 최대값 (1) | 2025.07.25 |
길이 불일치 (0) | 2025.07.25 |
카테고리타입 (1) | 2025.07.25 |
Comments