2017-03-12 5 views
0

私はCSV形式にエクスポートするとき今いくつかのフィールドがNoneの場合、リストのリストの対応する要素を追加する方法?

Time,  0, 1, 2, 3, 4, 5, 
Position, 0, 0, 1, 2, None, None, 
Weight, 1, 1, 1, 2, None, None, 
Time,  0, 1, 2, 3, 4, 5, 
Position, 0, 2, 3, 4, 4, 3, 
Weight, 1, 1, 2, 1, 1, 3, 

のように見えます

List = [['Time', 0, 1, 2, 3, None, None], ['Position',0, 0, 1, 2, None, None], ['Weight',1, 1, 1, 2, None, None],['Time', 0, 1, 2, 3, 4, 5], ['Position',0, 2, 3, 4, 4, 3], ['Weight'], [1, 1, 2, 1, 2, 3]] 

に似読み込みリストの長いリストを持って、私は最後に以下のような3行を追加します。

Time,    0,  1,  2,  3,   4,   5, 
Total Position,  0,  2,  4,  6,   4,   3, 
Total Weight,  2,  2,  3,  3,   1,   3, 

どうすればいいですか?私が直面しています問題は、私は私だけの行または重量の行位に対応する要素を追加することができますどのように他の値

  • でNoneを追加することはできません

    1. ですか?
  • +0

    あなたは本当に 'このためpandas'を使用する必要があります。しかし、 'x0、x1、x2、x3'などとは何でしょうか? –

    +0

    x、yは浮動小数点で、aとbは整数です。 – DrBgyan

    +0

    端末にコピー&ペーストすると、実際に解釈可能なサンプルデータをコードとして提供する必要があります。例を書くのに手間がかかる場合は、定義されていない名前は使用しないでください。ちょうど数字を作りなさい! –

    答えて

    0
    import numpy as np #use numpy to sum row 
    
    def replace_none(line): #change None into 0 
        def test(elem): 
         return elem if elem is not None else 0 
        return np.array([test(elem) for elem in line]) 
    
    def Total(list_,key): 
        line=np.zeros(len(list_[0])-1) 
        for l in list_: 
         if l[0]==key: # collect the right lines 
          line += replace_none(l[1:]) #sum 
        return ['Total '+key,*line] 
    
    List.append(Total(List,'Position')) 
    List.append(Total(List,'Weight')) 
    
    関連する問題