교통 데이터 전처리-교통량과 CO2 관련 분석 모델 만들기 4일차

지니의 길옥·2023년 7월 31일
0

환경통계연구실

목록 보기
5/19

미리 스포하자면...
몇일간 고민한 것을 해결했다...😂😂❗❗❗

저번에 concat()을 이용해 붙이려고 했지만 열의 개수가 월마다 달라서 사용할 수 없을 것 같았다.

결국 다시merge()함수의 품으로...

내가 이전에 머지함수를 이용해 작성한 셀을 보니 이상한 점이 느껴졌다.
아무리 생각해도...내가 생각한 방향이 틀리진 않았을텐데..

그래서 다시 코드를 처음부터 확인해보았다.

속도데이터인 'velo'를 우리가 필요한 컬럼만으로 정리해주고

'velo2'라는 데이터로 '일자' 열에서 1을 더한 것을 만들었다.

그런데 문득 '요일'이라는 컬럼이 문제를 일으키는 요인이라는 생각이 들었다.

월화수목금토일이 반복될테니까 inner join을 사용할 때 겹치는게 있을 것이니까..!!

그래서 이번에는 '요일' 열도 삭제했다.

그리고 머지함수를 입력하여 다시 작성해보았다.

test=pd.merge(velo4,velo2,on=['일자','링크아이디'], how='left')

그랬더니..!

내가 머릿속으로 생각한 방향대로 출력이 되었다😭

이제 저 NaN값에는 12월 데이터로 채워 넣어 주면 된다.

velo12=pd.read_excel("/content/drive/MyDrive/Colab Notebooks/data/2022년 12월 서울시 차량통행속도.xlsx")

마찬가지로 데이터를 불러오고

datetime으로 바꾸어준다.

velo12['일자']=velo12['일자'].astype('str')
velo12['일자']=pd.to_datetime(velo12['일자'])


2022년 12월 31일 24시 데이터만 사용할 것이기 때문에 12월 31일만 따로 출력해주고

velo_de=velo12[velo12['일자']=='2022-12-31']


2022년 12월 31일 24시는 2023년 01월 01일 0시이기 때문에 1을 더해준다.

velo_de['일자']=pd.DatetimeIndex(velo_de['일자'])+timedelta(days=1)


이 데이터를 NaN값에 대체할 수 있게 형태를 만들어주었다.

NaN값을 대치할 수 있는 함수에는 fillna()가 있는데 특정 컬럼을 넣으려면 인덱스의 번호가 일치해야하는 것을 알았다.

저 데이터 프레임은 150000번대에서 시작하므로 reset_index를 이용하여 0부터 시작할 수 있게 만들어주었다.

velo_del_12.reset_index(inplace=True)


인덱스 번호도 맞춰주었으니 이제 합쳐보면..


test['24시']=test['24시'].fillna(velo_del_12['24시'])


24시에만 값이 잘 들어갔다!

이제 컬럼을 drop,rename등으로 예쁘게 정리하면

데이터 정리가 된 것을 알 수 있다😚😚


단순하게 정리될 문제인 것 같았는데...생각보다 오랜 시간이 걸렸다..

원래 이렇게 오래걸릴 문제인진 모르겠는데 그래도 얼마의 시간이 걸려서라도 해결해서 기분이 너무너무 좋다😵‍💫

성장했다...김진희...⭐

그리고 같이 고민해준 남자친구에게도 감사를 표합니다..❤

이제 다음부터는 노트와 셀 정리좀 다시 하구 input과 target데이터로 나눌 것이다.

컴잉쑨-

profile
비전공자 주인장 일하느라 방치

0개의 댓글