2017-06-01 5 views
0

良い一日のすべてのフィルター行は、別のcsvファイルに基づいて、新しいファイルにフィルタリングされたデータを保存

ので、私はfile1がfile2のからのサブセットであり、FILE1、に基づいてFILE2をフィルタリングしようとしていました。しかし、file2には、file1のデータを分析するために必要な記述カラムがあります。私がしようとしているのは、file2をフィルタリングし、disc1でfile1にあるタイトルのみを取得することです。私はこれを試してみましたが、それは完全に右であるかどうかはわから辞めないよ、それに加えて取り組んでいるが、私は任意のファイルは、私のcomuter

import re 
import mmap 
from pandas import DataFrame 
output = [] 
with open('file2.csv', 'r') as f2: 
    mm = mmap.mmap(f2.fileno(), 0, access=mmap.ACCESS_READ) 
    for line in open('file1.csv', 'r'): 
     Title = bytes("") 
     nameMatch = re.search(Title, mm) 
     if nameMatch: 
      # output.append(str("")) 
      fulltypes = [ 'O*NET-SOC Code', 'Title' , 'Discription' ] 
      final = DataFrame(columns=fulltypes) 
      final.to_csv(output.append(str(""))) 
    mm.close() 

任意のアイデアには保存されませんか?

+0

は、あなたがデータフレームにfile1とfile2のを読んでいない理由は、特定の理由がありますか? – asongtoruin

+0

あなたは何も書いていません。あなたは書き込みモードでファイルを開くことさえしませんでした –

答えて

0

あなたのcsvファイルが大きすぎないと仮定すると、pandasjoinメソッドの両方を読むことでこれを行うことができます。以下の例を見てみましょう:

import pandas as pd 

file1 = pd.DataFrame({'Title': ['file1.csv', 'file2.csv', 'file3.csv']}) 
file2 = pd.DataFrame({'Title': ['file1.csv', 'file2.csv', 'file4.csv'], 
         'Description': ['List of files', 'List of descriptions', 'Something unrelated']}) 

joined = pd.merge(file1, file2, left_on='Title', right_on='Title') 

print joined 

これが印刷されます。

 Title   Description 
0 file1.csv   List of files 
1 file2.csv List of descriptions 

すなわち両方に存在するファイルだけ。 pandasとして

はネイティブにあなたができるお使いの場合には、データフレームにcsvファイルを読むことができます:

import pandas as pd 

file1 = pd.DataFrame.from_csv('file1.csv') 
file2 = pd.DataFrame.from_csv('file2.csv') 

joined = pd.merge(file1, file2, left_on='Title', right_on='Title') 

joined.to_csv('Output.csv', index=False) 
+0

私は参照してください。これは完璧に動作しています!ありがとうございました:D –

+0

心配しないで!これを答えとしてマークしたり、答えの左にあるボタンを使って投票することができます。 – asongtoruin

関連する問題