pandas 파이썬 데이터프레임 컬럼별로 연산하기 계산 오류

조회수 458회

이미지

이 데이터에서 ( 하류값*1 + 중류값*2 +상류값*3 )/ 3의 열을 만들고 싶은데 unsupported operand type(s) for /: 'list' and 'int' 오류가 계속납니다

//result1 = ta1_sample[['하류'*1 + '중류'*2 + '상류'*3]/3] 

이렇게 코드를 짜는게 아닌가요? 첫 파일에 타입이 object로 되어있어서 저 숫자 값들있는곳을 int32 로 다 변경해주었습니다. 그런데 왜 계속 오류가 나는지 모르겠습니다.

그리고 열 값으로 계산해야될 것 같아서 기존 데이터에서 transpose()를 사용하여 행렬을 바꾼뒤 계산하였는데

이미지

이 상태에서도 위와 같이 계산한 열이나 행을 만들 수 잇을까요?

1 답변

  • 좋아요

    1

    싫어요
    채택 취소하기

    아래처럼 해야 하고요.

    >>> df = pd.DataFrame(np.random.randint(100, 1000, size=(5,3)), columns=["하류", "중류", "상류"], index=[ f"{year}년" for year in range(2006, 2006+5)])
    >>> df
            하류   중류   상류
    2006년  819  530  735
    2007년  712  319  820
    2008년  932  892  630
    2009년  537  711  939
    2010년  913  400  218
    >>> result = (df["하류"]*1 + df["중류"]*2+df["상류"]*3)/3
    >>> result
    2006년    1361.333333
    2007년    1270.000000
    2008년    1535.333333
    2009년    1592.000000
    2010년     789.000000
    dtype: float64
    

    transpose 한 데이터프레임으로 계산하는 게 더 번거로워 보입니다. 원래 형태에서 계산하고, 필요할 때 transpose 하시길.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)