Python - CSV 파일을 순서 유지한채 무작위로 샘플링하여 두 개의 CSV 파일로 분할하기Python/Python 예제 코드2021. 10. 4. 17:45
Table of Contents
반응형
CSV 파일을 읽어 순서 유지한채 무작위 샘플링하여 2개의 CSV 파일로 저장하는 예제입니다.
Pandas를 사용하여 구현하였습니다.
테스트에 사용한 CSV 파일입니다. 주의할점은 csv 파일에 필드를 설명하는 헤더가 꼭 있어야 합니다. 여기에선 typeA, typeB입니다.
typeA, typeB AA1,BB1 AA2,BB2 AA3,BB3 AA4,BB4 AA5,BB5 AA6,BB6 AA7,BB7 AA8,BB8 AA9,BB9 AA10,BB10 AA11,BB11 AA12,BB12 AA13,BB13 AA14,BB14 AA15,BB15 AA16,BB16 AA17,BB17 AA18,BB18 AA19,BB19 AA20,BB20 AA21,BB21 AA22,BB22 AA23,BB23 AA24,BB24 AA25,BB25 |
실행 후, 다음 2개의 파일로 분리되었습니다.
typeA, typeB AA1,BB1 AA3,BB3 AA5,BB5 AA6,BB6 AA7,BB7 AA8,BB8 AA11,BB11 AA13,BB13 AA15,BB15 AA20,BB20 AA22,BB22 AA25,BB25 |
typeA, typeB AA2,BB2 AA4,BB4 AA9,BB9 AA10,BB10 AA12,BB12 AA14,BB14 AA16,BB16 AA17,BB17 AA18,BB18 AA19,BB19 AA21,BB21 AA23,BB23 AA24,BB24 |
사용한 전체 코드입니다.
import pandas as pd filepath = 'test.csv' # CSV 파일을 로드합니다. df_data = pd.read_csv(filepath) # 50% 비율로 샘플링한 후, 인덱스 컬럼을 기준으로 정렬합니다. # 인덱스 정렬은 Pandas에 로드될때 자동으로 생성되며 csv 파일로 저장시 제거하도록 설정합니다. df_file1 = df_data.sample(frac=0.5, random_state=2022).sort_index() # df_file1에 없는 로우(row)만 df_file2에 포함되도록 합니다. df_file2 = df_data.drop(df_file1.index) # csv 파일로 저장합니다. df_file1.to_csv('file1.csv', sep=',', na_rep='NaN', index = False) df_file2.to_csv('file2.csv', sep=',', na_rep='NaN', index = False) |
반응형
'Python > Python 예제 코드' 카테고리의 다른 글
MATLAB의 mat 파일을 Python에서 불러오기 (0) | 2021.11.14 |
---|---|
Python에서 실수 출력 포맷 지정하기 (0) | 2021.11.10 |
실수 넘파이 배열을 소수점 자리 맞추어 공백없이 쉼표구분으로 출력하기 (0) | 2021.09.11 |
Python에서 C언어 스타일의 조건 처리 전처리문 사용하기 (0) | 2021.06.09 |
Python에서 코드 실행 시간 측정(perf_counter, process_time, timeit) (3) | 2019.08.27 |
시간날때마다 틈틈이 이것저것 해보며 블로그에 글을 남깁니다.
블로그의 문서는 종종 최신 버전으로 업데이트됩니다.
여유 시간이 날때 진행하는 거라 언제 진행될지는 알 수 없습니다.
영화,책, 생각등을 올리는 블로그도 운영하고 있습니다.
https://freewriting2024.tistory.com
제가 쓴 책도 한번 검토해보세요 ^^
@webnautes :: 멈춤보단 천천히라도
그렇게 천천히 걸으면서도 그렇게 빨리 앞으로 나갈 수 있다는 건.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!