> 백엔드 개발 > 파이썬 튜토리얼 > Python은 csv 파일을 읽고 열을 제거한 다음 새 파일을 작성합니다. 기술 튜토리얼

Python은 csv 파일을 읽고 열을 제거한 다음 새 파일을 작성합니다. 기술 튜토리얼

小云云
풀어 주다: 2017-12-30 13:23:55
원래의
2416명이 탐색했습니다.

이 글은 주로 Python에서 csv 파일을 읽고 열을 제거한 다음 새 파일을 작성하는 예제를 공유합니다. 이는 훌륭한 참조 가치가 있으며 모든 사람에게 도움이 되기를 바랍니다. 에디터를 따라가며 살펴보겠습니다. 모두가 Python을 더 잘 익히는 데 도움이 되기를 바랍니다

저는 이 문제를 해결하기 위해 두 가지 방법을 사용했는데, 둘 다 인터넷에 있는 기존 솔루션입니다.

시나리오 설명:

텍스트 모드로 저장된 데이터 파일이 있습니다. 이제 user_id, plan_id 및 mobile_id라는 세 개의 열이 있습니다. 목표는 mobile_id, plan_id만으로 새 파일을 얻는 것입니다.

솔루션

옵션 1: 파이썬을 사용하여 파일을 열고 쓰고 데이터를 직접 읽고 for 루프에서 데이터를 처리한 후 새 파일에 씁니다.

코드는 다음과 같습니다.


def readwrite1( input_file,output_file):
 f = open(input_file, 'r')
 out = open(output_file,'w')
 print (f)
 for line in f.readlines():
 a = line.split(",")
 x=a[0] + "," + a[1]+"\n"
 out.writelines(x)
 f.close()
 out.close()
로그인 후 복사

옵션 2: pandas를 사용하여 데이터를 DataFrame으로 읽은 다음 데이터를 분할하고 DataFrame의 쓰기 기능을 사용하여 직접 씁니다. 새 파일

코드는 다음과 같습니다.


def readwrite2(input_file,output_file): date_1=pd.read_csv(input_file,header=0,sep=',') date_1[['mobile', 'plan_id']].to_csv(output_file, sep=',', header=True,index=False)
로그인 후 복사

코드 관점에서 보면 pandas의 논리가 더 명확합니다.

실행 효율성을 살펴보겠습니다!


def getRunTimes( fun ,input_file,output_file):
 begin_time=int(round(time.time() * 1000))
 fun(input_file,output_file)
 end_time=int(round(time.time() * 1000))
 print("读写运行时间:",(end_time-begin_time),"ms")

getRunTimes(readwrite1,input_file,output_file) #直接撸数据
getRunTimes(readwrite2,input_file,output_file1) #使用dataframe读写数据
로그인 후 복사

읽기 및 쓰기 실행 시간: 976 ms

읽기 및 쓰기 실행 시간: 777 ms

input_file에는 약 270,000개의 데이터가 있습니다. 데이터 프레임의 효율성은 여전히 ​​for 루프보다 빠릅니다. 데이터가 클수록 효과가 더 뚜렷해 집니까?

다음으로 input_file 레코드 수를 늘려보세요. 결과는 다음과 같습니다.

input_file ​ readwrite1 ​ readwrite2
27W 976 777
55W 1989 1509
110W 4312 3158

위의 테스트 결과로 데이터 프레임의 효율성이 향상되었습니다. 약 30% 정도.

관련 권장 사항:

Python을 사용하여 디렉터리의 파일을 필터링하고 삭제하고 자세한 예가 있습니다.

Python NLP에 대한 간략한 소개

Python 사용자 관리 시스템을 설명하는 예

위 내용은 Python은 csv 파일을 읽고 열을 제거한 다음 새 파일을 작성합니다. 기술 튜토리얼의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿