0

ファイルにレコードの巨大なダンプがあります。

Filename     Col1   Col2   Col3  Col4
SE01_inf     name    []     NA    []
SE01_loc      NA    loc     NA    []
SE01_id       NA     []    123    []
SE01_1_inf   name1   []     NA    []
SE01_1_loc    NA     loc    NA    []

以下のような統合出力が必要です

Filename     Col1   Col2   Col3  Col4
SE01         name   loc    123    []
SE01_1       name1  loc     NA    []

データが巨大で、関数を書いた瞬間にエクセルが動かなくなるので、エクセルでやりたくありません。Pythonを使用してこれを達成できますか?開始方法がよくわかりません。

4

2 に答える 2

1

@Akinakesの答えは素晴らしいです。別の方法でいくつかのヒントを次に示します。

あなたが持っている場合

input = [['name', '[]', 'NA', '[]'],\
     ['NA', 'loc', 'NA', '[]'],\
     ['NA', '[]', '123', '[]']]

あなたが試すことができます

def fil(l):
    tl = filter(lambda x:x not in ('NA','[]'), l)
    if len(tl) == 0:
        tl = [l[-1]]
    t = str(*tl)
    return t

output = map(fil, zip(*input))

出力は次のようになります。

['name', 'loc', '123', '[]']
于 2013-09-04T05:37:20.197 に答える