2017-11-23 8 views
0

私はcsvファイルに巨大なデータセットを持っていて、334に等しい場合はそのうちの1つをフィルタリングし、すべてのデータセットをExcelファイルにエクスポートします。ファイルがフィルタリングされると、Excelファイルで使用できます。これまではこのコードを書くことができましたが、列をフィルタリングしてすべてをExcelファイルにエクスポートする方法はわかりません。CSVファイルの列をフィルタリングしてからExcelにエクスポート

import itertools 
import csv 
from itertools import islice 

with open("eee.csv", 'r') as my_file: 
    reader = csv.reader(my_file) 
    for row in itertools.islice(reader, 100): 
     print (row) 
+0

334番目の列は、334ですか?それははっきりしているはずです。または、Excelでファイルを開いてそこで作業を完了させることもできます。 – caot

+0

334は、列の1つの値です。その1000万行のような私はここでそれをフィルタリングし、それを開くことができますので、Excelに行く必要があるので! Linux上では最終的に...それをやっての窓の方法を見つけるためにWindowsユーザーとして 'FINDSTR/C私をトリガーした場合に行くには –

答えて

0

あなたはパンダのデータフレームを使用することができます。

import pandas as pd 

df = pd.read_csv('eee.csv', header=0) 

df = df[df['column_name'].map(lambda x: x == 334)] 

df.to_csv('eee.csv') 
0

パンダはこれらの事で素晴らしいですが、あなたは...

import itertools 
import csv 
from itertools import islice 

column_nbr = 3 
keep = [] 

with open("eee.csv", 'r') as my_file: 
    reader = csv.reader(my_file) 
    for row in itertools.islice(reader, 100): 
     print (row) 
     cmp = row[column_nbr] 
     if cmp == 334: 
      keep.append(row) 

with open('filtered.csv', 'w') as f: 
    writer = csv.writer(f) 
    writer.writerows(keep) 

せずに同じことをしたい場合、これが唯一の合理的に動作しますキープリストが長すぎない限り、 キープリストが長い場合は、代わりにファイルを保存して、そのファイルに追加することができます。

他にも、出力結果をファイルにパイプすることができます。 のような何か:

python the_read_script_with_print.py > filtered_rows.txt 

上記のコードの変更は、行を保存する必要がちょうどファイルにキープリストだけでなく、結果の書き込みを忘れない、とちょうどif文でprint(row)を行うですメモリ内では、パイピングはそれらをテキストファイルに直接配置します。

(ローカル設定は自分で列をスリットしなければならない場所であなたを置くことができるが)。最後、Excelがすべてでのpythonを使用してうまく

かどうかをcsvファイルを開きますが、このような質問のための別のアプローチです。 cmd.exeの中にWindowsで..

FINDSTR /C:",334," eee.csv > filtered_rows.txt

Linuxの場合:caot

0

からの答えは次の操作を行い参照してください。

cat eee.csv | grep ,334, > filtered_rows.txt 
+0

definetly道: " 334、" eee.csv> filtered_rows.txt' – ahed87

+0

だから私は非常に新しいPythonユーザーです。この構文catを使用して...ちょうど構文エラーに私を与える、sytanxについて正確に何を私のためのビットを詳しく教えてくださいできますか?私はちょうど印刷後にそれを置くべきですか? –

+0

hm、あなたはPythonをまったく使用しないこれらの2つの事柄については、Linuxの場合はbash(cat/grep)、Windowsの場合はcommandprompt(FINDSTR) – ahed87

関連する問題