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 | 31 |
Tags
- GIT
- urllib
- ASP
- 날짜
- 유니티
- swift
- javascript
- sqlite
- flutter
- PyQt
- Unity
- 리눅스
- 함수
- Excel
- PER
- MS-SQL
- mssql
- node.js
- pandas
- ubuntu
- 라즈베리파이
- 다이어트
- MySQL
- Linux
- 맛집
- port
- IOS
- PyQt5
- python
- tensorflow
Archives
아미(아름다운미소)
pandas df a,b컬럼을 groupby 했을때c컬럼의합이 0인경우 d컬럼의 알파벳이 제일빠른행에 c행을 1로바꾸기 본문
랭귀지/pandas
pandas df a,b컬럼을 groupby 했을때c컬럼의합이 0인경우 d컬럼의 알파벳이 제일빠른행에 c행을 1로바꾸기
유키공 2024. 8. 14. 16:24import pandas as pd
# 예시 데이터프레임 생성
data = {
'a': ['A', 'A', 'B', 'B', 'C'],
'b': [1, 1, 2, 2, 1],
'c': [0, 0, 0, 0, 1],
'd': ['z', 'y', 'x', 'w', 'v']
}
df = pd.DataFrame(data)
# c의 합이 0인 그룹에서 d 컬럼의 알파벳이 가장 빠른 행의 c 값을 1로 변경
# 그룹화하여 c의 합 계산
grouped = df.groupby(['a', 'b'])
# c의 합이 0인 그룹 찾기
mask = grouped['c'].transform('sum') == 0
# 해당 그룹에서 d 컬럼 기준으로 정렬 후 첫 번째 행의 인덱스 찾기
first_alpha_index = df[mask].sort_values(by='d').groupby(['a', 'b']).head(1).index
# c 값을 1로 변경
df.loc[first_alpha_index, 'c'] = 1
print(df)
import pandas as pd
# 예시 데이터프레임 생성
data = {
'a': ['A', 'A', 'B', 'B', 'C'],
'b': [1, 1, 2, 2, 1],
'c': [0, 0, 0, 0, 1],
'd': ['z', 'y', 'x', 'w', 'v']
}
df = pd.DataFrame(data)
# 그룹화하여 c의 합이 0인 그룹 찾기
grouped = df.groupby(['a', 'b'])
for name, group in grouped:
if group['c'].sum() == 0:
# 그룹을 d 컬럼 기준으로 정렬
sorted_group = group.sort_values(by='d')
# 알파벳이 가장 빠른 행의 인덱스 찾기
min_alpha_index = sorted_group.index[0]
# 해당 행의 c 값을 1로 변경
df.at[min_alpha_index, 'c'] = 1
print(df)
'랭귀지 > pandas' 카테고리의 다른 글
df a,b컬럼에을 groupby했을때 c가 모두 false일때 해당그룹의 d 알파벳이 가장빠른행에 c값을 true로 바꿔준다 (0) | 2024.08.16 |
---|---|
pandas null 체크 (0) | 2024.08.15 |
값채우기 응용 (0) | 2024.08.13 |
pandas 몫 나머지 (0) | 2024.08.13 |
b컬럼이 음수면 -1을 해당수만큼넣고 양수면 1을 해당수만큼 넣기 (0) | 2024.08.12 |
Comments