{"id":31400,"date":"2023-01-21T05:13:49","date_gmt":"2023-01-20T23:43:49","guid":{"rendered":"https:\/\/jassweb.com\/solved\/solved-python-parse-csv-file-append-value-to-previous-row-if-next-row-have-duplicate-value-closed\/"},"modified":"2023-01-21T05:13:49","modified_gmt":"2023-01-20T23:43:49","slug":"solved-python-parse-csv-file-append-value-to-previous-row-if-next-row-have-duplicate-value-closed","status":"publish","type":"post","link":"https:\/\/jassweb.com\/solved\/solved-python-parse-csv-file-append-value-to-previous-row-if-next-row-have-duplicate-value-closed\/","title":{"rendered":"[Solved] Python. Parse csv file. Append value to previous row if next row have duplicate value [closed]"},"content":{"rendered":"<p> [ad_1]<br \/>\n<\/p>\n<div id=\"answer-59648663\" class=\"answer js-answer accepted-answer js-accepted-answer\" data-answerid=\"59648663\" data-parentid=\"59647431\" data-score=\"1\" data-position-on-page=\"1\" data-highest-scored=\"1\" data-question-has-accepted-highest-score=\"1\" itemprop=\"acceptedAnswer\" itemscope itemtype=\"https:\/\/schema.org\/Answer\">\n<div class=\"post-layout\">\n<div class=\"votecell post-layout--left\"><\/div>\n<div class=\"answercell post-layout--right\">\n<div class=\"s-prose js-post-body\" itemprop=\"text\">\n<p>This can be done by simply parsing the file line by line and checking if the current <code>asset<\/code> is the same as the previous one.<\/p>\n<p>First, let us store the assets and tags in a list inside <code>transformed_data<\/code>, to access tags easily, like so:<\/p>\n<pre><code>[ [ asset1, tag1 ], [ asset2, tag2 ], ... ]\n<\/code><\/pre>\n<p>Note that I assume the file contains <em>only<\/em> asset and tag in each row.<\/p>\n<pre><code># Some constants to improve readability\nASSET_FIELD = 0\nTAG_FIELD = 1\n# Open the file to parse\nwith open('data.csv') as csv_file:\n    transformed_data = list()\n    # Skip the headers\n    for line in csv_file.readlines()[1:]:\n        # Extract the asset and its tag\n        asset, tag = line.split()\n        # if asset is same as last asset of transformed data, ie the previous asset read\n        if transformed_data and transformed_data[-1][ASSET_FIELD] == asset:\n            # Append to previous tag\n            transformed_data[-1][TAG_FIELD] += ', ' + tag\n        # Else, simply append it\n        else:\n            transformed_data.append([asset, tag])\n<\/code><\/pre>\n<p>And this gives:<\/p>\n<pre><code>[['Laptop,', '856231'], ['Desktop,', '665786, 125548'], ['Laptop,', '657843']]\n<\/code><\/pre>\n<p>Now, if we want, we can convert it back to a list of strings:<\/p>\n<pre><code># Join each row into a string\ntransformed_data = [ ' '.join(row) for row in transformed_data]\nprint(transformed_data)\n<\/code><\/pre>\n<p>And, this shows:<\/p>\n<pre><code>['Laptop, 856231', 'Desktop, 665786, 125548', 'Laptop, 657843']\n<\/code><\/pre>\n<p>You can do whatever you want with it, and even write it back to the file. Remember to reattach the headers!<\/p>\n<p><em>Edit<\/em>: If you are getting <code>\\n<\/code> in the strings, simply do:<\/p>\n<pre><code># Join each row into a string\ntransformed_data = [ ' '.join(row).replace('\\n','') for row in transformed_data]\nprint(transformed_data)\n<\/code><\/pre>\n<\/p><\/div>\n<div class=\"mt24\"><\/div>\n<\/div>\n<p>            <span class=\"d-none\" itemprop=\"commentCount\">5<\/span> <\/p><\/div>\n<\/div>\n<p>[ad_2]<\/p>\n<p>solved Python. Parse csv file. Append value to previous row if next row have duplicate value [closed] <\/p>\n","protected":false},"excerpt":{"rendered":"<p>[ad_1] This can be done by simply parsing the file line by line and checking if the current asset is the same as the previous one. First, let us store the assets and tags in a list inside transformed_data, to access tags easily, like so: [ [ asset1, tag1 ], [ asset2, tag2 ], &#8230; &#8230; <a title=\"[Solved] Python. Parse csv file. Append value to previous row if next row have duplicate value [closed]\" class=\"read-more\" href=\"https:\/\/jassweb.com\/solved\/solved-python-parse-csv-file-append-value-to-previous-row-if-next-row-have-duplicate-value-closed\/\" aria-label=\"More on [Solved] Python. Parse csv file. Append value to previous row if next row have duplicate value [closed]\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[320],"tags":[349],"class_list":["post-31400","post","type-post","status-publish","format-standard","hentry","category-solved","tag-python"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>[Solved] Python. Parse csv file. Append value to previous row if next row have duplicate value [closed] - JassWeb<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/jassweb.com\/solved\/solved-python-parse-csv-file-append-value-to-previous-row-if-next-row-have-duplicate-value-closed\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"[Solved] Python. Parse csv file. Append value to previous row if next row have duplicate value [closed] - JassWeb\" \/>\n<meta property=\"og:description\" content=\"[ad_1] This can be done by simply parsing the file line by line and checking if the current asset is the same as the previous one. First, let us store the assets and tags in a list inside transformed_data, to access tags easily, like so: [ [ asset1, tag1 ], [ asset2, tag2 ], ... ... Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jassweb.com\/solved\/solved-python-parse-csv-file-append-value-to-previous-row-if-next-row-have-duplicate-value-closed\/\" \/>\n<meta property=\"og:site_name\" content=\"JassWeb\" \/>\n<meta property=\"article:published_time\" content=\"2023-01-20T23:43:49+00:00\" \/>\n<meta name=\"author\" content=\"Kirat\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kirat\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-python-parse-csv-file-append-value-to-previous-row-if-next-row-have-duplicate-value-closed\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-python-parse-csv-file-append-value-to-previous-row-if-next-row-have-duplicate-value-closed\\\/\"},\"author\":{\"name\":\"Kirat\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#\\\/schema\\\/person\\\/65c9c7b7958150c0dc8371fa35dd7c31\"},\"headline\":\"[Solved] Python. Parse csv file. Append value to previous row if next row have duplicate value [closed]\",\"datePublished\":\"2023-01-20T23:43:49+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-python-parse-csv-file-append-value-to-previous-row-if-next-row-have-duplicate-value-closed\\\/\"},\"wordCount\":143,\"publisher\":{\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#organization\"},\"keywords\":[\"python\"],\"articleSection\":[\"Solved\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-python-parse-csv-file-append-value-to-previous-row-if-next-row-have-duplicate-value-closed\\\/\",\"url\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-python-parse-csv-file-append-value-to-previous-row-if-next-row-have-duplicate-value-closed\\\/\",\"name\":\"[Solved] Python. Parse csv file. Append value to previous row if next row have duplicate value [closed] - JassWeb\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#website\"},\"datePublished\":\"2023-01-20T23:43:49+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-python-parse-csv-file-append-value-to-previous-row-if-next-row-have-duplicate-value-closed\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-python-parse-csv-file-append-value-to-previous-row-if-next-row-have-duplicate-value-closed\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/solved-python-parse-csv-file-append-value-to-previous-row-if-next-row-have-duplicate-value-closed\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"[Solved] Python. Parse csv file. Append value to previous row if next row have duplicate value [closed]\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#website\",\"url\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/\",\"name\":\"JassWeb\",\"description\":\"Build High-quality Websites\",\"publisher\":{\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#organization\",\"name\":\"Jass Web\",\"url\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/jassweb.com\\\/wp-content\\\/uploads\\\/2021\\\/02\\\/jass-website-logo-1.png\",\"contentUrl\":\"https:\\\/\\\/jassweb.com\\\/wp-content\\\/uploads\\\/2021\\\/02\\\/jass-website-logo-1.png\",\"width\":693,\"height\":132,\"caption\":\"Jass Web\"},\"image\":{\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/#\\\/schema\\\/person\\\/65c9c7b7958150c0dc8371fa35dd7c31\",\"name\":\"Kirat\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/wp-content\\\/litespeed\\\/avatar\\\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1777008400\",\"url\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/wp-content\\\/litespeed\\\/avatar\\\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1777008400\",\"contentUrl\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/wp-content\\\/litespeed\\\/avatar\\\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1777008400\",\"caption\":\"Kirat\"},\"sameAs\":[\"http:\\\/\\\/jassweb.com\"],\"url\":\"https:\\\/\\\/jassweb.com\\\/solved\\\/author\\\/jaspritsinghghumangmail-com\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"[Solved] Python. Parse csv file. Append value to previous row if next row have duplicate value [closed] - JassWeb","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/jassweb.com\/solved\/solved-python-parse-csv-file-append-value-to-previous-row-if-next-row-have-duplicate-value-closed\/","og_locale":"en_US","og_type":"article","og_title":"[Solved] Python. Parse csv file. Append value to previous row if next row have duplicate value [closed] - JassWeb","og_description":"[ad_1] This can be done by simply parsing the file line by line and checking if the current asset is the same as the previous one. First, let us store the assets and tags in a list inside transformed_data, to access tags easily, like so: [ [ asset1, tag1 ], [ asset2, tag2 ], ... ... Read more","og_url":"https:\/\/jassweb.com\/solved\/solved-python-parse-csv-file-append-value-to-previous-row-if-next-row-have-duplicate-value-closed\/","og_site_name":"JassWeb","article_published_time":"2023-01-20T23:43:49+00:00","author":"Kirat","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Kirat","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/jassweb.com\/solved\/solved-python-parse-csv-file-append-value-to-previous-row-if-next-row-have-duplicate-value-closed\/#article","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/solved-python-parse-csv-file-append-value-to-previous-row-if-next-row-have-duplicate-value-closed\/"},"author":{"name":"Kirat","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31"},"headline":"[Solved] Python. Parse csv file. Append value to previous row if next row have duplicate value [closed]","datePublished":"2023-01-20T23:43:49+00:00","mainEntityOfPage":{"@id":"https:\/\/jassweb.com\/solved\/solved-python-parse-csv-file-append-value-to-previous-row-if-next-row-have-duplicate-value-closed\/"},"wordCount":143,"publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"keywords":["python"],"articleSection":["Solved"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/jassweb.com\/solved\/solved-python-parse-csv-file-append-value-to-previous-row-if-next-row-have-duplicate-value-closed\/","url":"https:\/\/jassweb.com\/solved\/solved-python-parse-csv-file-append-value-to-previous-row-if-next-row-have-duplicate-value-closed\/","name":"[Solved] Python. Parse csv file. Append value to previous row if next row have duplicate value [closed] - JassWeb","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/#website"},"datePublished":"2023-01-20T23:43:49+00:00","breadcrumb":{"@id":"https:\/\/jassweb.com\/solved\/solved-python-parse-csv-file-append-value-to-previous-row-if-next-row-have-duplicate-value-closed\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jassweb.com\/solved\/solved-python-parse-csv-file-append-value-to-previous-row-if-next-row-have-duplicate-value-closed\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/jassweb.com\/solved\/solved-python-parse-csv-file-append-value-to-previous-row-if-next-row-have-duplicate-value-closed\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/jassweb.com\/solved\/"},{"@type":"ListItem","position":2,"name":"[Solved] Python. Parse csv file. Append value to previous row if next row have duplicate value [closed]"}]},{"@type":"WebSite","@id":"https:\/\/jassweb.com\/solved\/#website","url":"https:\/\/jassweb.com\/solved\/","name":"JassWeb","description":"Build High-quality Websites","publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/jassweb.com\/solved\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/jassweb.com\/solved\/#organization","name":"Jass Web","url":"https:\/\/jassweb.com\/solved\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/","url":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","contentUrl":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","width":693,"height":132,"caption":"Jass Web"},"image":{"@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31","name":"Kirat","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1777008400","url":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1777008400","contentUrl":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1777008400","caption":"Kirat"},"sameAs":["http:\/\/jassweb.com"],"url":"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/"}]}},"_links":{"self":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/31400","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/comments?post=31400"}],"version-history":[{"count":0,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/31400\/revisions"}],"wp:attachment":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/media?parent=31400"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/categories?post=31400"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/tags?post=31400"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}