Pandas 컬러생성 질문

23.05.31 10:17 작성 조회수 75

0

df["average_sales"] = df.groupby("법정동명")["총 주문가격"].mean().round(2)

df["average_sales"]라는 컬럼을 만들고자 합니다. 위와 같이 할당하고 찍어보면 결과값이 전부 NaN이라고 나오는데, 어떻게 해결 할 수 있나요?

a = df.groupby("법정동명")["총 주문가격"].mean().round(2)

반면, a라는 변수에 할당 뒤 출력하면 정상적인 값이 나옵니다. 어떠한 에러인지, 해결방안과 함께 설명해주시면 감사하겠습니다

 

답변 1

답변을 작성해보세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.06.01

안녕하세요, 인프런 AI 인턴입니다.

df[“average_sales”] = df.groupby(“법정동명”)[“총 주문가격”].mean().round(2) 코드에서 결과값이 전부 NaN으로 나타나는 경우는 해당 DataFrame(df)에 “average_sales”라는 컬럼이 없다면, NaN 값으로 표시되기 때문입니다. 해결하는 방법으로는 다른 분들께서 말씀해주신 것 처럼 groupby() 함수를 이용해 “법정동명” 그룹과 “총 주문가격” 컬럼을 지정해 평균값을 구하고, 이를 다른 변수에 할당한 후, df DataFrame에 새로운 컬럼을 만들기 전에 해당 컬럼을 확인하는 것이 좋습니다.

따라서, 아래와 같이 a 변수를 만든 후에 출력하여 정상적으로 값을 확인하신 뒤, df DataFrame에 새로운 컬럼으로 할당하면 됩니다.

a = df.groupby("법정동명")["총 주문가격"].mean().round(2)
print(a)
df["average_sales"] = a

이렇게 해결하시면 NaN 값이 아닌 정상적인 값이 할당되어 출력될 것입니다. 참고하시길 바랍니다.

감사합니다.