데이터 파싱하면서 생겼던 문제들 기록
나랑 팀원 둘 다 데이터를 뽑는데
팀원은 api를 사용해서 뽑고 나는 직접 뽑아서 데이터 형식이 다르게 쌓이는 문제가 발생...
데이터 사용 시 계속 코드를 조금씩 수정해야 하는 일이 발생한거라
아직 api를 못 쓰는 내가 데이터 형식을 맞추는 걸로...
근데 여기서..
teamDLC가 column으로 있는데 중복이라 바로 수정이 안 되는 이슈..
(teamDCL, teamDCL1, teamDCL2 ... 이렇게 되더라구여?)
이리저리 헤매다가 해결했습니다.
생각해낸 방법
def make_new_row(have_added_df):
new_row = pd.DataFrame([['bodyparts', 'Bbox', 'Bbox', 'Bbox', 'Bbox','Bbox', 'Bbox'],
['score', 'teamDLC', 'teamDLC', 'teamDLC', 'teamDLC','teamDLC', 'teamDLC'],
['coords', 'x1', 'y1', 'x2', 'y2','score', 'label']], columns = have_added_df.columns)
new_df = pd.concat([have_added_df.iloc[:0], new_row, have_added_df.iloc[0:]], ignore_index = True)
f_data = new_df.rename(columns=new_df.iloc[1])
f_data = f_data.drop(f_data.index[1])
f_data = f_data.reset_index(drop=True)
return f_data
1. 맞춰야 하는 데이터를 내가 뽑은 데이터의 columns을 가져와서 데이터 프레임 생성
2. 1번의 데이터 프레임을 원래 기본 데이터 프레임의 맨 위로 concat (같은 columns으로 합치기)
3. 해당하는 행을 columns으로 교체
이게.. 정리하니까 더 이상한거 같은데.. 도통 무슨 말인가 싶으니 코드를 확인해 봅시다.
(* 더 좋은 방법이 있을 수 있으니 혹시 같은 문제 발생 시 참고만 하시고,, 좋은 방법 공유 해주시면 감사합니다!)
1. 맞춰야 하는 데이터를 내가 뽑은 데이터의 columns을 가져와서 데이터 프레임 생성
: new_row 라는 이름으로 넣어야 하는 데이터들을 columns을 그대로 가져와서 만들어 줍니다.
: read_change_csv가 위에서 말한 내가 뽑은 데이터입니다.
new_row = pd.DataFrame([['bodyparts', 'Bbox', 'Bbox', 'Bbox', 'Bbox','Bbox', ],
['score', 'teamDLC', 'teamDLC', 'teamDLC', 'teamDLC','teamDLC', ],
['coords', 'x1', 'y1', 'x2', 'y2','score', ]], columns = read_change_csv.columns)
new_row
2. 1번의 데이터 프레임을 원래 기본 데이터 프레임의 맨 위로 concat (같은 columns으로 합치기)
: 이제 이거를 불러온 데이터 프레임이랑 합칩니다.
new_df = pd.concat([read_change_csv.iloc[:0], new_row, read_change_csv.iloc[0:]], ignore_index = True)
3. 해당하는 행을 columns으로 교체
: 맞춰야 하는 형식을 보면 지금 1번재 인덱스가 열이니까 이거를 이제 columns으로 맞춰줄게요.
: 그리고 그러면서 1번째 인덱스를 삭제합니다.
f_data = new_df.rename(columns=new_df.iloc[1])
f_data = f_data.drop(f_data.index[1])
f_data = f_data.reset_index(drop=True)
이제 이거를 다시 csv로 저장하면 완성입니다..
저장할 때는f_data.to_csv(파일위치, encoding = 'utf-8-sig') 이렇게 했어요.
원래는 진짜 그냥 파일 하나씩 열어서 수정할까? 했는데 csv 파일이라서 수정하고 저장하니까 난리가 나더라구요;;
뭔가 좋은 방법은 아닌것 같지만,,, 어쨌든 됐으니 완성이죠 하하
나름 반나절 노가다의 결과랍니다..
'Python' 카테고리의 다른 글
[Python] 데이터프레임의 index를 알아보자 (0) | 2022.12.02 |
---|