#実装したいこと
実装したい事としては、下記の表の「T」と「F」の組み合わせから、
条件にあった「列」の値を取り出し、その列上に期待値を出したい。
例として下記のような感じ。
ボタンが「T」だったらアクション1の「ボタンを押す」が
列上「3」のところに出るというのを実装したい。
例) 0 1 2 3 4 5 6 7 ボタン T T T T F F F F ビデオ T T F F T T F F 静止 T F T F T F T F アクション1 ボタンを押す アクション2 アクション3
#やったこと
条件から「T」と「F」の条件を網羅的に表示し、全ての行で「T」になっている列を抽出するところまで行った。
#コード
python
1import pandas as pd 2import itertools 3pd.set_option('display.unicode.east_asian_width',True) 4 5front_table = { 6 '操作':['ボタン','ビデオ','静止'] 7} 8 9expected_value = [ 10 ['ボタンを押す'], 11 ['ビデオモードにする'], 12 ['静止する'] 13} 14 15#表側,表頭を指定して、それに対応した期待値を抽出 16class Table: 17 def __init__(self, row_names, data): 18 self.row_names = row_names 19# self.column_names = column_names 20 self.data = data 21 22 def get_datum(self, row_name): #column_name): 23 row_index = self.row_names.index(row_name) 24# column_index = self.column_names.index(column_name) 25 26 return self.data[row_index] 27 28table = Table(front_table['操作'],expected_value) 29dat = table.get_datum('電源ボタン') 30#print(dat) 31 32 33#真偽のマーク 34true_mark = 'T' 35false_mark = 'F' 36 37#真偽の組み合わせを網羅的に行う 38def combination_TF(front_table): 39 table_index = front_table 40 combination = itertools.product(*([true_mark,false_mark],)*len(table_index)) 41 42 dataTF = [[] for i in range(len(table_index))] 43 for com in combination: 44 for element_count,authenticity in enumerate(com): 45 dataTF[element_count].append(authenticity) 46 return (dataTF, table_index) 47 48data, conditions = combination_TF(front_table['操作']) 49df = pd.DataFrame(data,index=conditions) 50print(df) 51 52#全ての行で「T」になっている部分の列の場所を抽出 53columns_data = [[] for j in range(len(front_table['操作']))] 54 55for index_number in range(len(front_table['操作'])): 56 for columns_number in range(len(df.columns)): 57 if df[columns_number][index_number] == 'T': 58 columns_data[index_number].append(columns_number) 59print(columns_data)
#実行結果
0 1 2 3 4 5 6 7 電源ボタン T T T T F F F F ビデオボタン T T F F T T F F 静止ボタン T F T F T F T F [[0, 1, 2, 3], [0, 1, 4, 5], [0, 2, 4, 6]]
分かりにくいかもしれませんが、よろしくお願いいたします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/09/24 13:19
2017/09/24 16:45 編集
2017/09/24 16:58