Я сопоставляю мой sha1_vsdt.csv файл с файлом журнала. Если мой первый столбец с именем "SHA1" в моем CSV-файле совпадает с файлом журнала, получите 11-й столбец, в противном случае заполните "Необнаруженный".
Это мой код, и он работал для некоторых файлов журнала, но когда я пробую это trendx.log , он показывает ошибку ниже
# I used the 10th column as sha1 and 11th column as as description
import pandas as pd
import numpy as np
import csv
logtext = "trendx.log"
logdata = np.genfromtxt(log_file + "\\" + logtext,invalid_raise = False,dtype=object, comments=None,usecols=np.arange(16),encoding='utf_16-le')
logframe = pd.DataFrame(logdata)
df2=(logframe[[10,11]]).rename(columns={10:'SHA-1', 11: 'DESC'})
df1=pd.read_csv(out_sha1_vsdt ,delimiter=",",error_bad_lines=False,engine = 'python',quoting=3)
df = pd.merge(df1, df2, on='SHA-1', how='left').fillna('Undetected')
df1['DESC'] = df['DESC'].values
Я получаю эту ошибку:
Traceback (most recent call last):
File "C:\Users\Administrator\Desktop\OJT\scanner\match.py", line 33, in <module>
df1['DESC'] = df['DESC'].values
File "C:\Users\Administrator\AppData\Roaming\Python\Python27\site-packages\pandas\core\frame.py", line 3119, in __setitem__
self._set_item(key, value)
File "C:\Users\Administrator\AppData\Roaming\Python\Python27\site-packages\pandas\core\frame.py", line 3194, in _set_item
value = self._sanitize_column(key, value)
File "C:\Users\Administrator\AppData\Roaming\Python\Python27\site-packages\pandas\core\frame.py", line 3391, in _sanitize_column
value = _sanitize_index(value, self.index, copy=False)
File "C:\Users\Administrator\AppData\Roaming\Python\Python27\site-packages\pandas\core\series.py", line 4001, in _sanitize_index
raise ValueError('Length of values does not match length of ' 'index')
ValueError: Length of values does not match length of index
Правильный вывод в CSV должен быть таким:
0665de1ad83715cc6e68d00ed700c469944a5925,WIN32 EXE 7-2,Undetected
067b448f4c9782489e5ff60c31c62b7059e500b2,Adobe Portable Document Format(PDF) 6015-0,Not Supported
0688e6966b0e4a1f58d2f3de48f960fce5b42292,MS Office 1-0,Not Supported
0689f6f99d10dd8bf396f2d2c73ce9dcb6dcad23,ASCII text 18-0,Undetected
06a60c6018a42b1db22e3bf8620861711401c4bb,WIN32 EXE 7-2,TROJ.Win32.TRX.XXPE50FFF026
0723a895a5f8b2d5d25b4303e9f04d16551791b6,MSIL 7-18,TROJ.Win32.TRX.XXPE50FFF026
07344621cf4480c430f8931af2b2b056775af7e3,MIME 6010-0,Undetected
07831df482f1a34310fc4f5a092c333eeaff4380,Microsoft RTF 6008-0,Not Supported
08386105057cd5867480095696a5ca6701fdb8ad,ASCII text 18-0,Undetected
РЕДАКТИРОВАТЬ: я понял, я только что удалил .values
в df1['DESC'] = df['DESC'].values
, но не дает мнеправильный вывод