2017-08-27 8 views
0

私はデータのリストを持っています。各行に7つの列があるとします。既存のセルが存在しないリストの行に空の文字列を含む新しいセルを挿入します。なし

list_of_data = [ 
     [['Joe', 4, 4, 4, 5, 'cabbage', None], 
     ['Joe', 43, 42, 41, 53, 'cabbage', None], 
     ['Joe', 24, 34, 44, 55, 'cabbage', None]], 

     [['Tom', 7, 34, 4, 52, 'cabbage', None], 
     ['Tom', 4, 24, 43, 52, 'cabbage', None], 
     ['Tom', 4, 4, 4, 5, 'cabbage', None]], 

     [['Fred', 4, 4, 4, 5, 6, 'cabbage'], 
     ['Fred', 4, 4, 4, 5, 6, 'cabbage'], 
     ['Fred', 4, 4, 4, 5, 6, 'cabbage']] 
    ] 

ジョーとトムの行のために、最後のインデックス/カラムはNoneを含んでいないが、最後のインデックス/カラムへの第二は、キャベツが含まれていることに注意してください。 Fredの行については、最後の索引/列には「キャベツ」が含まれています。

このリストは、多数のURLに含まれるテーブルデータを繰り返し処理する関数から生成しました。問題は、Fredのテーブルにインデックス#3に余分な列があるのに対して、JoeとTomの入力テーブルはインデックス#3にこの列がないことです。したがって、データが生成されるとき、インデックス#3で始まるジョーとトムの行は、インデックス#3の値が欠落した状態で、1列右に移動する必要がある値で埋められます。

最後のインデックス/列がなしの行については、これらの行のインデックス#3に空の文字列があります。

逆に最後のインデックス/列がなしで、インデックス#3から始まる行については、すべての列を1列右に移動したいと考えています。

+1

入力と出力の例を示してください。この例では、3や4などの低いインデックスを使用できます。 – zipa

+0

@zipa私の質問が更新されました。ありがとう! – TJE

+0

あなたの質問は私には分かりません。しかし、パンダのデータフレームでは、特定の行に1つのセルだけを挿入することはできません。代わりに、1つの列を追加する必要があります。 – iparjono

答えて

0
for i in list_of_data: 
    for j in i: 
     if j[len(j)-1] == None: 
      j.insert(3, "empty") 
関連する問題