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
- PyQt5
- python
- 리눅스
- PyQt
- 함수
- 다이어트
- 맛집
- swift
- 라즈베리파이
- mssql
- sqlite
- 유니티
- GIT
- Excel
- ASP
- port
- node.js
- 날짜
- javascript
- ubuntu
- MS-SQL
- Linux
- pandas
- PER
- flutter
- IOS
- MySQL
- Unity
- urllib
- tensorflow
Archives
아미(아름다운미소)
pandas df에서 a,b,c,d컬럼으로 groupby 했을때 e컬럼이 모두 null이면 1/(해당 row 수) 를 소숫점 5째 자리에서 반올림한 값을 넣어준다 본문
랭귀지/pandas
pandas df에서 a,b,c,d컬럼으로 groupby 했을때 e컬럼이 모두 null이면 1/(해당 row 수) 를 소숫점 5째 자리에서 반올림한 값을 넣어준다
유키공 2024. 8. 7. 13:32import pandas as pd
import numpy as np
# 예제 데이터 생성
data = {
'a': ['A', 'A', 'B', 'B', 'C', 'C'],
'b': [1, 1, 2, 2, 3, 3],
'c': [5, 5, 6, 6, 7, 7],
'd': [10, 20, 30, 40, 50, 60],
'e': [np.nan, np.nan, 3.5, np.nan, np.nan, np.nan] # A와 C 그룹은 모두 null, B 그룹은 일부 값이 있음
}
df = pd.DataFrame(data)
# 각 그룹의 행 수를 계산
group_sizes = df.groupby(['a', 'b', 'c', 'd'])['e'].transform('size')
null_groups = df.groupby(['a', 'b', 'c', 'd'])['e'].transform(lambda x: x.isnull().all())
# 그룹의 값이 모두 null인 경우에만 값을 변경
df['e'] = np.where(null_groups & (group_sizes > 0), round(1 / group_sizes, 5), df['e'])
# 결과 출력
print("수정된 DataFrame:")
print(df)
# NaN 값을 유지하는 경우를 위해 추가적인 확인
print("\nNaN 값이 있는 행:")
print(df[df['e'].isna()])
'랭귀지 > pandas' 카테고리의 다른 글
계산 후 join (0) | 2024.08.12 |
---|---|
pandas df a,b,c,d groupby 후 e컬럼을 sum 한후e와 d값을 비교후 (e-d) 값을 f가 가장작은 row의 d값에 더해준다 (0) | 2024.08.07 |
pandas df1의 a컬럼으로 df2 a컬럼 검색 (0) | 2024.08.07 |
pandas Coalesce (0) | 2024.08.06 |
a,b,c,d 컬럼으로 groupby 했을때e==b인 row의 f값을취하고 e==b인 row가없을시 null을 넣고 g컬럼을 생성한다 (0) | 2024.08.06 |
Comments