반응형
결측값이 있는 열의 부분 집합에 대한 행 단위 평균
때때로 누락된 값이 있는 'DataFrame'이 있습니다. 다음과 같이 보입니다.
Monday Tuesday Wednesday
================================================
Mike 42 NaN 12
Jenna NaN NaN 15
Jon 21 4 1
새로운 것을 추가하고 싶습니다.column
제 데이터 프레임에 저장된 데이터를 저장할 수 있습니다.columns
모든 일에 대하여row
.
그 의미는.Mike
, 필요합니다.(df['Monday'] + df['Wednesday'])/2
, 대신에Jenna
, 저는 단순히.df['Wednesday amt.']/1
결측치로 인한 이 변동을 설명하고 평균을 계산하는 가장 좋은 방법을 아는 사람이 있습니까?
간단히 다음을 수행할 수 있습니다.
df['avg'] = df.mean(axis=1)
Monday Tuesday Wednesday avg
Mike 42 NaN 12 27.000000
Jenna NaN NaN 15 15.000000
Jon 21 4 1 8.666667
왜냐면.mean()
는 기본적으로 결측값을 무시합니다. 문서를 참조하십시오.
부분 집합을 선택하려면 다음을 수행할 수 있습니다.
df['avg'] = df[['Monday', 'Tuesday']].mean(axis=1)
Monday Tuesday Wednesday avg
Mike 42 NaN 12 42.0
Jenna NaN NaN 15 NaN
Jon 21 4 1 12.5
대안 - iloc 사용(여기서도 loc 사용 가능):
df['avg'] = df.iloc[:,0:2].mean(axis=1)
이전의 모든 답변이 현재 경고를 인쇄하고 있으므로 이 질문을 다시 활성화합니다.
대부분의 경우 사용assign()
:
df = df.assign(avg=df.mean(axis=1))
특정 열의 경우 이름으로 입력할 수 있습니다.
df = df.assign(avg=df.loc[:, ["Monday", "Tuesday", "Wednesday"]].mean(axis=1))
또는 인덱스별로, 포함되지 않으므로 마지막으로 원하는 인덱스보다 하나 이상을 사용합니다.
df = df.assign(avg=df.iloc[:,0:3]].mean(axis=1))
적용 방법 사용:
df['avg'] = df[['Monday', 'Tuesday']].apply(np.avg, axis = 1)
언급URL : https://stackoverflow.com/questions/34734940/row-wise-average-for-a-subset-of-columns-with-missing-values
반응형
'sourcecode' 카테고리의 다른 글
스위프트에서 UILabel의 선 간격을 늘리는 방법 (0) | 2023.10.10 |
---|---|
NodeJS: 서버의 포트를 가져오는 방법은 무엇입니까? (0) | 2023.10.10 |
PHP 읽기 전용 속성? (0) | 2023.10.10 |
mysql 결과에서 제외할 사용자 호스트 쌍 제공 (0) | 2023.10.10 |
보기 호출기 내부의 조각 바꾸기 (0) | 2023.10.10 |