作者sariel0322 (sariel)
看板Python
標題[問題] csv資料格式修改
時間Tue Feb 24 22:28:26 2015
想請問一下,我有個csv的資料內容如下:
http://imgur.com/NYryEgS
希望修改成這樣的格式:
http://imgur.com/qfoK9Sf
比如說:
第一個圖片中,中間的第一個"R5K7F9",移到最前面(範例第二張圖)
如果中間的代號是重複的像是第一個的"R5K7F9"右邊的第一個的"IPR006982"(第五列對應其位置)
其實跟第二個"R5K7F9"的左邊的"IPR006982"是一樣的(第四列對應其位置)
然後依序下來,希望能排成像是第二張圖的直行排列
簡單來說,我的每一行都是一對一對的(第一列資料跟第三列資料對應,而第二列是標記,第四列是第一列資料直線概念上的位置,第五列資料是第三列直線概念上的位置)
之前為了跑某些程式才把資料轉換成這種格式
想請問有沒有又快又簡單的寫法,可以把第一張圖的格式寫成第二張圖
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 120.126.36.171
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1424788108.A.C56.html
推 ccwang002: 列=欄 (column) 對吧? 你的問題跟 #1KsuHJw9 很像 02/25 01:02
→ ccwang002: 因為轉換完的欄位長度不是固定的,在讀每一行的時候 02/25 01:03
→ ccwang002: 會受到前幾行的結果有不同的 state 。所以直覺上 02/25 01:04
→ ccwang002: 寫個 for loop 把連續的值 append,斷掉後 yield 出來 02/25 01:05
想到了,我主要的問題並不是欄位長度,而是如何取代前一個物件,原本的配對像是像是:
a Y b
b Y c
我希望轉換成:
Y a b c
無論如何,謝謝你裡面提到append給了我靈感,直接每次check append的[-1]位置就好了
非常感謝
※ 編輯: sariel0322 (182.234.196.206), 02/25/2015 02:35:26