Я пытаюсь объединить несколько наборов строк вместе, чтобы удалить дубликаты в CSV, используя python и pandas. Исходя из общего значения, «ID», в котором есть повторяющиеся строки, значения из другого столбца «HostActed» должны быть объединены с разрывом строки. Аналогично этому сообщению: введите описание ссылки здесь , однако мне нужно сохранить все существующие значения, которые соответствуют одному и тому же идентификатору. Я уже проделал аналогичную работу со столбцами, используя приведенный ниже код в качестве примера, однако это не совсем то же самое:
df = pd.read_csv("output.csv")
cols = ['Host','Protocol','Port']
newcol = ['/'.join(i) for i in zip(df['Host'],df['Protocol'],df['Port'].map(str))]
df = df.assign(HostAffected=newcol).drop(cols, 1)
Пока у меня есть этот код:
df.groupby(['Plugin ID','Description])[HostAffected'].apply(list)
Адаптировано из этой темы: введите описание ссылки здесь однако это не работает.
Пример набора данных, который у меня был бы, выглядит следующим образом:
PluginID Description HostAffected
10395 Windows SMB Shares Enumeration 10.0.0.10/tcp/445
10396 Windows SMB Shares Access 10.0.0.10/tcp/445
10396 Windows SMB Shares Access 192.168.0.12/tcp/445
10398 Windows SMB LsaQueryInformationPolicy 10.0.0.10/tcp/445
10399 SMB Use Domain SID to Enumerate Users 10.0.0.10/tcp/445
10400 Windows SMB Registry Remotely Accessible 10.0.0.10/tcp/445
10736 DCE Services Enumeration 10.0.0.10/tcp/139
10736 DCE Services Enumeration 10.0.0.10/tcp/445
10736 DCE Services Enumeration 192.168.0.12/tcp/445
Значения разделены запятыми, однако я использовал пробелы, чтобы сделать их более понятными. Я хочу, чтобы это выглядело так, когда есть только одна уникальная строка для столбца «Идентификатор плагина» и «Описание» и «HostAffered»:
ID Description HostAffected
10395 Windows SMB Shares Enumeration 10.0.0.10/tcp/445
10396 Windows SMB Shares Access 10.0.0.10/tcp/445
192.168.0.12/tcp/445
10398 Windows SMB LsaQueryInformationPolicy 10.0.0.10/tcp/445
10399 SMB Use Domain SID to Enumerate Users 10.0.0.10/tcp/445
10400 Windows SMB Registry Remotely Accessible 10.0.0.10/tcp/445
10736 DCE Services Enumeration 10.0.0.10/tcp/139
10.0.0.10/tcp/445
192.168.0.12/tcp/445
По сути, могут быть одинаковые идентификатор и описание для нескольких наборов HostsActed. Любая помощь будет принята с благодарностью, так как это немного сложнее и сложнее, чем объединение столбцов вместе.