2017-08-08 7 views
0

私は、行ごとに分析している大きなデータセットを持っています。例示的なデータラインは100 0 0 100 1 0 100 2 0 100 3 0 100 4 0である。ここでは、100に続く2つのエントリには、データについての情報(英語に解読された)が含まれています。したがって、100の後の最初のエントリは常にその値(0,1,2,3または4のいずれか)に基づいて解読され、100の後の2番目のエントリは常にエントリ1の値に基づいて解読されます(つまりエントリ1 = 0エントリ2 = ____、またはエントリ1 = 1エントリ2 = _____などなど)。異なるリストの長さのインデックスによるPython変数の割り当て

データラインをdataにリストとして保存しました。 100の後には常に2つのエントリがありますが、100が何行あるかはわかりません。例のデータ行は100という5つのインスタンスがありますが、他の行にはインスタンス数はありません。

現在のコード:

data = [num for num in column[2:] if num != 100] 
entry1 = data[1] 
entry2 = data[2] 
info_dict1 = {0: 'absolute', 1: 'minimum', 2: 'maximum', 3: 'median', 4: 'mode'} 
info1 = info_dict1.get(entry1, 'not found') 
info_dict2 = {'absolute': 'value', 'minimum': 'increase', 'maximum': 'increase'} 
info2 = info_dict2.get(info1, 'not found') 
print(info1, info2) 

私は100の未知の出現とデータラインのために働くために、これを取得する問題を抱えています(無視columnが、それは私がdataを確立するために使用されるオリジナルのリストです)。私はまた、正確なPythonicソリューションを見つけることに苦労しています。私は結果がどのように見えることを期待してサンプルデータについては

は: absolute value minimum increase maximum increase median not found mode not found

100の次のエントリは、常に(提供される例のラインのように、すなわち最初のエントリを命じていないことをノートに重要です0〜4の数字が可能で、2番目の入力は最初の入力に応じて変わります)

答えて

1

期待する答えにこの解決策を試してください。

column = [100, 0, 0, 100, 1, 0, 100, 2, 0, 100, 3, 0, 100, 4, 0] 
data = [num for num in column if num != 100] 
info_dict1 = {0: 'absolute', 1: 'minimum', 2: 'maximum', 3: 'median', 
4: 'mode'} 
info_dict2 = {'absolute': 'value', 'minimum': 'increase', 'maximum': 
'increase'} 
info1 = [] 

#Iterating the list in step of 2 
for item in data[::2]: 
    result = info_dict1.get(item, 'not found') 
    info1.append(result) 
    info1.append(info_dict2.get(result, 'not found')) 

print(info1) 
関連する問題