2017-10-17 1 views
2

현재 열 A - B 열 < = 0이고 열 C가 주어진 구와 같은 줄을 제거하고 CSV 마스터 파일을 다운로드하는 작업이 있습니다. 열 B < = 0 팬더와 파이썬을 사용하여 CSV 파일 프로그램 필터하기

  • 하나 열 C에 필터링 입력 요청 -

    • 가 가져 오기 CSV가 열 A가 어디
    • 모든 줄을 제거 파일 : 나는하는 프로그램을 만들 찾고 있어요 이상의 문구

    지금까지, 나는이 작업을 수행하는 가장 좋은 방법은 내가 그것을 사용했습니다으로, 팬더 'dataframe 기능을 사용하는 것으로 확인 새 파일에

  • 내보내기 CSV 이전에 다른 수행 CSV 작업 파일 :

    import pandas as pd 
     
    
     
    file = read_csv("sourcefile.csv") 
     
    file['NewColumn'] = file['A'] - file['B'] 
     
    file = file[file.NewColumn > 0] 
     
    columns = ['ColumnsIWantToRemove'] 
     
    file.drop(columns, inplace=True, axis=1) 
     
    phrases = input('What phrases are you filtering for? ') 
     
    file = file[file.C = phrases] 
     
    file.to_csv('export.csv')

    내 질문입니다, 어떻게 여러 구를 열 C를 필터링 할 수 있습니까? 프로그램에서 하나 이상의 구문을 사용하고 C 열의 값이 해당 값 중 하나와 같은 행만 표시하기를 원합니다. 어떤 지침도 훌륭합니다. 고맙습니다!!

    난 그냥 입력을 요청할 것
  • 답변

    0

    분리 쉼표로 :

    phrases = phrases.split(",") 
    file = file[file.C.isin(phrases)] 
    
    +0

    나는이 시도했지만,이 필터링 될 것 같지 않습니다 및 데이터 파일을 내보낼 때 비어 있습니다. 어떤 아이디어? – dner

    +0

    @dner print 서술문은 여기서 친구입니다. 분할 전후에 구를 인쇄 해보고 repl에 복제 할 수 있는지 (예 : ipython) 확인할 수 있습니다. –

    0

    어쩌면이 당신을 도울 수 있습니다

    import csv 
    
    input = open(sourcefile.csv, 'rb') 
    output = open(out_sourcefile, 'wb') 
    writer = csv.writer(output) 
    for row in csv.reader(input): 
        if (phrases you want C column not to be,and you can add here multiple phrases): 
         continue 
         writer.writerow(row) 
    input.close() 
    output.close() 
    
    +0

    우리가 보관하고 싶지 않은 수백 개의 문구가 있기 때문에 이것은 효과가없는 것처럼 보입니다. – dner

    관련 문제