这是我的问题,我需要比较两次转换为CSV文件的procmon扫描。
两个文件的列名都相同,但是显然内容不同。 我需要检查从第一个文件到第二个文件的“路径”(第5列),然后将第二个文件的整个行打印到第三个CSV文件(如果存在匹配项)。
我已经搜索了一段时间,似乎无法像我想要的那样使它正常工作,感谢您的帮助!
我已经尝试了许多在线工具和其他python脚本,但都无济于事。
答案 0 :(得分:2)
只需为您自己的代码编写此类代码。可能比您预期的要容易。
#!/usr/bin/env python
import pandas as pd
# read the csv files
csv1 = pd.read_csv('<first_filename>')
csv2 = pd.read_csv('<sencond_filename>')
# create a comapare series of the files
iseq = csv1['Path'] == csv2['Path']
# push compared data with 'True' from csv2 to csv3
csv3 = pd.DataFrame(csv2[iseq])
# write to a new csv file
csv3.to_csv('<new_filename>')
答案 1 :(得分:0)
您是否尝试过同时使用pandas和numpy?
它看起来像这样:
import pandas as pd
import numpy as np
#get your second file as a Dataframe, since you need the whole rows later
file2 = pd.read_csv("file2.csv")
#get your columns to compare
file1Column5 = pd.read_csv("file1.csv")["name of column 5"]
file2Column5 = file2["name of column 5"]
#add a column where if values match, row marked True, else False
file2["ColumnsMatch"] = np.where(file1Column5 == file2Column5, 'True', 'False')
#filter rows based on that column and remove the extra column
file2 = file2[file2['ColumnsMatch'] == 'True'].drop('ColumnsMatch', 1)
#write to new file
file2.to_csv(r'file3.csv')