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 답변
-
아래처럼 해야 하고요.
>>> 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 하시길.
댓글 입력