Я бы предпочел, чтобы это было на Python, так как я больше работаю над изучением.Если вы можете оказать помощь в bash, это все равно будет полезно.
Я осмотрел Stack Overflow и нашел несколько полезных вещей, но мне не хватает, чтобы закончить это.
У меня естьдва CSV-файла с некоторыми общими полями.Данные не INT
.Я хотел бы присоединиться на основе сопоставления 3 конкретных полей и записать его в новый output.csv
, когда вся обработка будет завершена.
sourceA.csv
выглядит следующим образом:
fieldname_1,fieldname_2,fieldname_3,fieldname_4,fieldname_5,fieldname_6,fieldname_7,fieldname_8,fieldname_9,fieldname_10,fieldname_11,fieldname_12,fieldname_13,fieldname_14,fieldname_15,fieldname_16
sourceB.csv
выглядит следующим образом:
fieldname_4,fieldname_5,fieldname_OTHER,fieldname_8,fieldname_16
Как видите, sourceB.csv
имеет 4 имени поля, которые также есть в sourceA.csv
, и одно имя поля, которого нет.Данные в fieldname_OTHER
должны заменить данные в sourceA[fieldname_6]
.
Весь процесс должен выглядеть следующим образом:
Заменить данные в sourceA[fieldname_6]
наданные из sourceB[fieldname_OTHER]
, если соблюдены все следующие критерии:
data in sourceA[fieldname_4]=sourceB[fieldname_4]
data in sourceA[fieldname_8]=sourceB[fieldname_8]
data in sourceA[fieldname_16]=sourceB[fieldname_16]
(данные в sourceB[fieldname_5]
оценивать не нужно.)
Если вышеуказанные критерии не выполняются, просто замените sourceA[fieldname_6]
текстом ANY
.
Запишите каждую обработанную строку в output.csv
.
Пример того, что я хотел бы, чтобы вывод основывался на входных CSV и обработке, описанной выше:
dataA,dataB,dataC,dataD,dataE,dataOTHER,dataG,dataH,dataI,dataJ,dataK,dataL,dataM,dataN,dataO,dataP
Надеюсь, предоставленные мной данные не сделали его более запутаннымчем это должно быть.Спасибо за вашу помощь!