다음 Pandas DataFrame이 있습니다.
Col1 Col2 Col3
0 A c 1.0
1 A c 3.0
2 B c 5.0
3 A d 6.0
4 A c NaN
다음 함수를 작성하고 있습니다.
replace_missing_with_conditional_mean(df, condition_cols, cols)
열에있는 누락 된 값을 목록의 레이블로 바꾸고 싶습니다.
cols
.
대체 될 값은 해당 그룹의 비결 측 값의 평균으로 계산됩니다. 그룹은 목록의 레이블이있는 열의 값을 기반으로 형성됩니다.
condition_cols
.
언제
replace_missing_with_conditional_mean(df, condition_cols=['Col1','Col2'], cols=['Col3'])
인수를 사용하여 위의 데이터 프레임에 적용되면 다음과 같이 산출됩니다.
Col1 Col2 Col3
0 A c 1.0
1 A c 3.0
2 B c 5.0
3 A d 6.0
4 A c 2.0
이것은 4 행의 레코드가 그룹에 속하기 때문입니다.
A c
평균은 (1 + 3)/2 = 2입니다.
나는 사용해 보았다
df.fillna(df.groupby(condition_cols).transform('mean'))
하지만 그것은 나에게 오류를주고있다
TypeError: Transform function invalid for data types
- 답변 # 1
관련 자료
- python - 다른 항목을 기준으로 선택한 2 개의 행 값 바꾸기
- 배열의 항목을 Spark의 다른 값으로 바꾸는 방법은 무엇입니까?
- r - 왼쪽에 인접한 열의 값을 기반으로 여러 열의 값을 바꾸는 방법
- python - 다른 열을 기반으로 한 값으로 npnan 채우기
- r - 값을 조건이있는 다른 데이터 프레임의 다른 값으로 바꾸고 나머지는 변경되지 않습니다
- python - 열의 NULL 값을 Pandas의 특수 문자로 바꾸는 방법
- r - 명명 된 벡터를 기반으로 열 값 대체
- shell - Bash의 변수를 기반으로 특정 TSV 테이블 행에서 값 추출
- prolog - 목록의 값을 기준으로 목록 요소 그룹화
- jq - 목록의 값을 기반으로 부울을 출력 할 수 있습니까?
- sql - 0 값을 조인에서 사용 가능한 마지막 값으로 대체
- python - 다른 팬더 열의 값을 기반으로 문자열을 바꾸는 방법
- python - 판다 - 새 열 데이터를 기반으로 열 값을 찾는 방법
- python - 두 데이터 프레임 값을 기반으로 플롯의 색상 코드
- python 3.x - pandas df에서 삭제하지 않고 하나의 열을 제외하고 pandas의 열 값을 바꿉니다
- R에서 인접한 열에있는 문자의 일치에 따라 값을 NA로 바꿉니다
- python - 모든 행 값 양수, 한 행 값 음수, 두 행 값 음수… 및 모든 행 값 음수를 기준으로 Pandas 데이터 프레임을 정렬하는 방법,
- 조건/열 값을 기반으로 파티션 만들기 BigQuery
- java - "ABCDEFG"라는 문자열이 있다고 가정합니다 이제이 문자열의 짝수 값을 ASCII 값으로 바꾸고 싶습니다 어떻게해야합니까?
다음과 같은 기능을 구현할 수 있습니다.
산출