Так что я немного слаб в своем кодировании и имею некоторый опыт работы с powershell и python, поэтому я открыт для решений в любом из них.
Это может быть сложно описать, поэтому я создал поддельный набор данных в надежде, что это сделает это более ясным.
Что я пытаюсь сделать, так это дедуплицировать строки каждого CSV в каталоге на основе имени, но затем по порядку: Если NARRATIVE = "CAUGHT", я хочу сохранить эта строка еще, если NARRATIVE содержит URL, я хочу сохранить эту строку, если ни одна из них не является истинной, я хочу сохранить последнюю / самую нижнюю запись.
Мне кажется, что я ближе всего к PowerShell, поэтому я Я буду использовать этот пример, но если вы сможете решить эту проблему в python, я также полностью открыт для этого. Где я терплю неудачу здесь?
gci -Filter *.csv | Select-Object -ExpandProperty FullName | Import-Csv | Foreach-Object {Select-Object where $_.NARRATIVE -Contains "Caught"} | export-csv test1.csv -NoTypeInformation
Основной набор данных:
SITE,DATE,URL,SITE2,NAME,NARRATIVE
AAA,03/17/2020,https://someurl.com/1234,BBB,NAME1,CAUGHT
AAA,03/17/2020,https://someurl.com/1234,BBB,NAME2,CAUGHT
AAA,03/17/2020,https://someurl.com/1234,BBB,NAME3,CAUGHT
AAA,03/17/2020,https://someurl.com/1234,BBB,NAME4,CAUGHT
AAA,03/17/2020,https://someurl.com/1234,BBB,NAME5,CAUGHT
AAA,03/17/2020,https://someurl.com/1234,BBB,NAME6,CAUGHT
AAA,03/17/2020,https://someurl.com/1234,BBB,NAME7,CAUGHT
AAA,03/17/2020,https://someurl.com/1234,BBB,NAME1,only visited http://thisismyhouse.com once
AAA,03/17/2020,https://someurl.com/1234,BBB,NAME2,NAME2 did some stuff and here's how/why
AAA,03/17/2020,https://someurl.com/1234,BBB,NAME5,NAME5 just sat there
AAA,03/17/2020,https://someurl.com/1234,BBB,NAME3,NAME3 was really important right here
AAA,03/17/2020,https://someurl.com/1234,BBB,NAME6,NAME6 fell down and couldn’t get up
AAA,03/17/2020,https://someurl.com/1234,BBB,NAME3,NAME3 was MOST important right here
AAA,03/17/2020,https://someurl.com/1234,BBB,NAME8,NAME8 Dropped the beat
AAA,03/17/2020,https://someurl.com/1234,BBB,NAME9,After the game NAME9 went home
AAA,03/17/2020,https://someurl.com/1234,BBB,NAME4,"while NAME4 was at the store, they found a grape"
AAA,03/17/2020,https://someurl.com/1234,BBB,NAME7,NAME7 got hit in the head
AAA,03/17/2020,https://someurl.com/1234,BBB,NAME9,NAME9 spends a lot of time on http://dungeondepths.com
AAA,03/17/2020,https://someurl.com/1234,BBB,NAME1,On Friday the 13th NAME1 got a tattoo
AAA,03/17/2020,https://someurl.com/1234,BBB,NAME4,For dinner NAME4 ordered pizza
AAA,03/17/2020,https://someurl.com/1234,BBB,NAME8,NAME8 Fired the Bass Cannon
AAA,03/17/2020,https://someurl.com/1234,BBB,NAME9,NAME9 is rebooting
AAA,03/17/2020,https://someurl.com/1234,BBB,NAME6 ,NAME6 broke their leg
AAA,03/17/2020,https://someurl.com/1234,BBB,NAME8,NAME8 Put the needle on the record
Желаемые результаты:
SITE,DATE,URL,SITE2,NAME,NARRATIVE
AAA,03/17/2020,https://someurl.com/1234,BBB,NAME1,CAUGHT
AAA,03/17/2020,https://someurl.com/1234,BBB,NAME2,CAUGHT
AAA,03/17/2020,https://someurl.com/1234,BBB,NAME3,CAUGHT
AAA,03/17/2020,https://someurl.com/1234,BBB,NAME4,CAUGHT
AAA,03/17/2020,https://someurl.com/1234,BBB,NAME5,CAUGHT
AAA,03/17/2020,https://someurl.com/1234,BBB,NAME6,CAUGHT
AAA,03/17/2020,https://someurl.com/1234,BBB,NAME7,CAUGHT
AAA,03/17/2020,https://someurl.com/1234,BBB,NAME9,NAME9 spends a lot of time on http://dungeondepths.com
AAA,03/17/2020,https://someurl.com/1234,BBB,NAME8,NAME8 Put the needle on the record