txt 또는 csv파일에서 필요한 열만 추출 후 txt파일로 저장하려면 어떻게 해야할까요?..
조회수 5993회
with open('파일이름.csv')as file:
csv_data = []
for line in file.readlines():
csv_data.append(line.split(','))
행과 열을 나누는 것 까지는 알겠는데..필요한 열만 호출해서
다시 txt 파일로 저장은 어떻게 해야하는지 모르겠네요..
파이썬 매우 초보라서ㅠ..ㅠ
csv가 굳이 아니라 txt파일에서 txt로 저장되어도 상관없습니다.
제가 필요한건 1-5 열 이라고 가정한다면 어떻게 짜야할까요?
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
2 답변
-
방법은 여러가지가 있을 수 있습니다.
데이터 처리시 많이 사용하는 pandas 모듈을 이용해봤습니다.
WHO_8COLS.csv 의 내용의 일부입니다.
,Country,CountryID,Continent,Adolescent fertility rate (%),Adult literacy rate (%),Gross national income per capita (PPP international $),Net primary school enrolment ratio female (%),Net primary school enrolment ratio male (%),Population (in thousands) total 0,Afghanistan,1,1,151.0,28.0,,,,26088.0 1,Albania,2,2,27.0,98.7,6000.0,93.0,94.0,3172.0 2,Algeria,3,3,6.0,69.9,5940.0,94.0,96.0,33351.0 3,Andorra,4,2,,,,83.0,83.0,74.0
import pandas as pd df = pd.io.parsers.read_csv("WHO_8COLS.csv") sliceData = df.loc[:, 'Country'] # Country 열만 자름 sliceData.to_csv('newSliced.csv', index=False) # csv로 저장
-
GO 언어로 해보기
sample.csv 는 아래와 같습니다.
first_name,last_name,username Rob,Pike,rob Ken,Thompson,ken Robert,Griesemer,gri
package main import ( "encoding/csv" "os" ) func main() { rf, _ := os.Open("f:\\sample.csv") defer rf.Close() r := csv.NewReader(rf) records, _ := r.ReadAll() saveRecords := [][]string{} // 필터링된 rows for _, record := range records { saveRecords = append(saveRecords, record[0:2]) // 필터링 1, 2번째 컬럼만 저장 } // 새파일에 필터링된 레코드 저장 wf, _ := os.Create("F:\\sample_new.csv") defer wf.Close() w := csv.NewWriter(wf) w.WriteAll(saveRecords) }
결과
first_name,last_name Rob,Pike Ken,Thompson Robert,Griesemer
댓글 입력