簡體   English   中英

根據列中的單元格值創建單個行

[英]Creating Individual Rows with based on a cell value in a column

我正在尋找一個CSV文件,並使用python 2.7對文件進行排序,以基於一個塊和很多的兩列獲取單個值。 我的數據現在看起來像下面的鏈接:

開始

我希望能夠使用Python將很多價值自動創建為新的CSV,其中的價值在新CSV上繪制時看起來像這樣

最終結果

因此,我知道我需要讀取行和列,並基於手數列的單元格值(如果有“”),那么該行將被復制到另一個csv中的下一行,並且所有值將被復制到第一個csv中列將僅被復制,然后第二,第三等。

逗號分隔開后,將以類似的方式在第三個CSV中管理范圍。 如果只有一個值,則將按原樣復制整個行。

多謝您的協助。

這應該工作。

  1. 在Windows上,以二進制模式打開文件,否則會出現雙換行。
  2. 我假設行由;分隔; 因為細胞中含有,
  3. 首先除以,然后檢查范圍
  4. print line用於調試
  5. 錯誤檢查留給讀者練習。

碼:

import csv

file_in = csv.reader(open('input.csv', 'rb'), delimiter=';')
file_out = csv.writer(open('output.csv', 'wb'), delimiter=';')

for i, line in enumerate(file_in):
    if i == 0:
        # write header
        file_out.writerow(line)
        print line
        continue

    for j in line[1].split(','):
        if len(j.split('-')) > 1:
            # lines with -
            start = int(j.split('-')[0])
            end = int(j.split('-')[1])
            for k in xrange(start, end + 1):
                line[1] = k
                file_out.writerow(line)
                print line
        else:
            # lines with ,
            line[1] = j
            file_out.writerow(line)
            print line

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM