美好的一天
所以我试图根据file1过滤file2,其中file1是file2的子集。但file2有描述列,我需要能够分析file1中的数据。我尝试做的是过滤file2,只获取file1中带有描述的标题。我尝试了这个,但是我不确定它是否完全正确,而且它正在运行,但我没有在我的计算机中保存任何文件
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 :(得分:0)
假设您的csv文件不是太大,您可以通过同时阅读pandas
并使用join
方法来执行此操作。请看以下示例:
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)