Я пытаюсь сравнить два файла CSV (и многие другие, как показано ниже). Я пробовал много способов, используя списки, диктофон и многое другое, но ничего не дал мне требуемый результат. Я хочу сравнить все те строки, которые имеют одинаковые значения! Sample_title и! Sample_geo_accession (позиции которых меняются). Я боролся с этим уже три дня и не мог прийти к решению. Я высоко ценю любую помощь.Разница в столбцах двух файлов CSV
CSV1:
!Sample_title,!Sample_geo_accession,!Sample_status,!Sample_type,!Sample_source_name_ch1
body,GSM501443,Public on july 22 2010,ribonucleic acid,FB_50_12wk
foreign,GSM501445,Public on july 22 2010,ribonucleic acid,FB_0_12wk
HJCENV,GSM501446,Public on july 22 2010,ribonucleic acid,FB_50_12wk
AsDW,GSM501444,Public on july 22 2010,ribonucleic acid,FB_0_12wk
CSV2:
!Sample_title,!Sample_type,!Sample_source_name_ch1,!Sample_geo_accession
AsDW,ribonucleic acid,FB_0,GSM501444
foreign,ribonucleic acid,FB,GSM501449
HJCENV,RNA,12wk,GSM501446
Желаемый выход (по отношению к CSV2):
Добавлено:
{!Sample_status:{HJCENV:Public on july 22 2010,AsDW:Public on july 22 2010}} #Added columns, not rows.
Deleted:
{} #Since nothing's deleted with respect to CSV2
Изменено:
{!Sample_title:AsDW,!Sample_source_name_ch1:(FB_0_12wk,FB_0),!Sample_geo_accession:GSM501444
!Sample_title:HJCENV,!Sample_type:(ribonucleic acid,RNA),!Sample_source_name_ch1:(FB_50_12wk,12wk),!Sample_geo_accession:GSM501446}
#foreign,ribonucleic acid,FB,GSM501449 doesn't come here since the !Sample_geo_accession column values didn't match.
EDIT:
Здесь словарь Добавлено должны давать какие-либо дополнительные столбцы и их значения для каждого Sample_title (! Когда Sample_title и Sample_geo_accession матч в CSV1 и CSV2) которые находятся в CSV1 (если у него больше столбцов, чем CSV2)
Удаленный словарь делает аналогичную вещь, как Добавлено, за исключением того, что он ищет удаленные столбцы.
Изменено задает значения, которые различаются как в файлах, так и в их заголовке.
Так в основном он должен сравнивать яблоки и яблоки (когда имена заголовков совпадают), а не яблоки и апельсины (по положению столбца)
Можете ли вы использовать 'index', чтобы найти, какие позиции вы ищете в строке? –
по индексу, если вы имеете в виду номера столбцов hardcoding, нет, поскольку они могут меняться от файла к файлу. @ kiran.koduru – abn
Можете ли вы также объяснить, что создала эта структура словаря для _Added_ и _Changed_? Я не понимаю, что там делает. –