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
- javascript
- MySQL
- port
- flutter
- sqlite
- 날짜
- swift
- 다이어트
- PyQt
- 맛집
- Excel
- python
- PER
- pandas
- PyQt5
- tensorflow
- 함수
- mssql
- ubuntu
- urllib
- ASP
- 라즈베리파이
- 유니티
- Unity
- MS-SQL
- IOS
- Linux
- GIT
- 리눅스
- node.js
Archives
아미(아름다운미소)
df 의 a컬럼값과 df2의 a,b,c,d groupby sum e의 값이 같은지 검증하는방법 본문
import pandas as pd
# 예시 데이터프레임 생성
data = {
'a': ['A', 'A', 'B', 'B'],
'b': ['X', 'X', 'Y', 'Y'],
'c': [1, 1, 2, 2],
'd': [10, 20, 10, 20],
'e': [100, 200, 300, 400],
'f': [150, 250, 350, 450] # f 컬럼 추가
}
df1 = pd.DataFrame(data)
df2 = df1.copy() # df2는 df1과 동일
# df1을 그룹화하고 e 컬럼의 합을 계산
grouped_df1 = df1.groupby(['a', 'b', 'c', 'd'])['e'].sum().reset_index()
# df2는 그대로 사용
# df2의 f 컬럼을 그대로 가져오기 위해 df1과 같은 방법으로 그룹화
grouped_df2 = df2[['a', 'b', 'c', 'd', 'f']]
# 두 그룹을 병합하여 e와 f의 값을 비교
merged = pd.merge(grouped_df1, grouped_df2, on=['a', 'b', 'c', 'd'])
# e와 f의 값이 같지 않은 그룹 찾기
result = merged[merged['e'] != merged['f']]
print(result)
import pandas as pd
# 예시 데이터프레임 생성
data = {
'a': ['A', 'A', 'B', 'B'],
'b': ['X', 'X', 'Y', 'Y'],
'c': [1, 1, 2, 2],
'd': [10, 20, 10, 20],
'e': [100, 200, 300, 400],
'f': [150, 250, 350, 450] # f 컬럼 추가
}
df1 = pd.DataFrame(data)
df2 = df1.copy() # df2도 df1과 동일하게 복사
# df1을 그룹화하고 e 컬럼의 합을 계산
grouped_df1 = df1.groupby(['a', 'b', 'c', 'd'])['e'].sum().reset_index()
# df1을 그룹화하고 f 컬럼의 합을 계산
grouped_df1_f = df1.groupby(['a', 'b', 'c', 'd'])['f'].sum().reset_index()
# 두 그룹을 병합하여 e와 f의 값을 비교
merged = pd.merge(grouped_df1, grouped_df1_f, on=['a', 'b', 'c', 'd'], suffixes=('_e', '_f'))
# e와 f의 값이 같지 않은 그룹 찾기
result = merged[merged['e_e'] != merged['f_f']]
print(result)
import pandas as pd
# 예시 데이터프레임 생성
df = pd.DataFrame({
'a': [1, 2, 3],
})
df2 = pd.DataFrame({
'a': [1, 1, 2, 2, 3],
'b': [3, 3, 4, 4, 5],
'c': [5, 5, 6, 6, 7],
'd': [10, 20, 10, 20, 30],
'e': [2, 3, 1, 1, 4]
})
# df2의 a로 그룹화하여 e의 합계 계산
grouped_sum_df2 = df2.groupby('a')['e'].sum().reset_index()
# df의 a 컬럼과 df2에서 그룹화한 결과를 병합
merged = pd.merge(df, grouped_sum_df2, on='a', how='left')
# 병합된 결과 확인
print("병합된 데이터프레임:\n", merged)
# 'e' 컬럼의 이름 확인
print("컬럼 이름:\n", merged.columns)
# 틀린 값 찾기
# df에는 e 컬럼이 없으므로, df2의 e의 합계와 비교
# df의 e를 None으로 설정하지 않고, 단순히 그룹화된 결과만 확인하고 싶다면
mismatched = merged[merged['e'].isnull() | (merged['e'] != 0)]
print("틀린 값:\n", mismatched)
import pandas as pd
# 예시 데이터프레임 생성
df = pd.DataFrame({
'a': [1, 2, 3],
})
df2 = pd.DataFrame({
'a': [1, 1, 2, 2, 3],
'b': [3, 3, 4, 4, 5],
'c': [5, 5, 6, 6, 7],
'd': [10, 20, 10, 20, 30],
'e': [2, 3, 1, 1, 4]
})
# df2의 a로 그룹화하여 e의 합계 계산
grouped_sum_df2 = df2.groupby('a')['e'].sum().reset_index()
# df의 a 컬럼과 df2에서 그룹화한 결과를 병합
merged = pd.merge(df, grouped_sum_df2, on='a', how='left', suffixes=('', '_grouped'))
# 병합된 결과 확인
print("병합된 데이터프레임:\n", merged)
# e의 값이 서로 다른 경우 찾기
# df에는 e 컬럼이 없으므로, df2의 e의 합계와 비교
# 만약 df의 e를 None으로 설정하지 않고, 단순히 그룹화된 결과만 확인하고 싶다면
mismatched = merged[merged['e_grouped'].isnull() | (merged['e_grouped'] != 0)]
print("틀린 값:\n", mismatched)
'랭귀지 > pandas' 카테고리의 다른 글
pandas transform (0) | 2024.08.28 |
---|---|
특정열이 1보다큰경우 fillcount (0) | 2024.08.27 |
pandas a,b 값의 나눈값과 나머지를 구하고 나눈값이 음수이면 나머지를 음수로 양수면 나머지를 양수 (0) | 2024.08.23 |
pandas sum,count,몫,나머지 구하기 (0) | 2024.08.22 |
Pandas를 사용하여 `groupby`로 `a`, `b`, `c`, `d` 컬럼을 기준으로 그룹화한 후, `d` 컬럼이 모두 null이면 1/해당row수를 소수점5자리에서 반올림하기 (0) | 2024.08.22 |
Comments