2016-08-30 5 views
0

У меня есть рамка данных pandas, которая представляет собой квадратную сетку с булевыми значениями, причем индекс и столбцы являются именами 628 избирательных округов, которые имеют соседей. напримерВозвращаемые критерии соответствия имен столбцов в pandas

In[18]: adjacents.index 
Out[18]: 
Index(['Aberavon', 'Aberconwy', 'Aberdeen North', 'Aberdeen South', 
     'Aberdeenshire West & Kincardine', 'Airdrie & Shotts', 'Aldershot', 
     'Aldridge-Brownhills', 'Altrincham & Sale West', 'Alyn & Deeside', 
     ... 
     'Wrekin, The', 'Wrexham', 'Wycombe', 'Wyre & Preston North', 
     'Wyre Forest', 'Wythenshawe & Sale East', 'Yeovil', 'York Central', 
     'York Outer', 'Yorkshire East'], 
     dtype='object', length=628) 

In[19]: adjacents.columns 
Out[19]: 
Index(['Aberavon', 'Aberconwy', 'Aberdeen North', 'Aberdeen South', 
     'Aberdeenshire West & Kincardine', 'Airdrie & Shotts', 'Aldershot', 
     'Aldridge-Brownhills', 'Altrincham & Sale West', 'Alyn & Deeside', 
     ... 
     'Wrekin, The', 'Wrexham', 'Wycombe', 'Wyre & Preston North', 
     'Wyre Forest', 'Wythenshawe & Sale East', 'Yeovil', 'York Central', 
     'York Outer', 'Yorkshire East'], 
     dtype='object', length=628) 

Так, Manchester Central constiuency находится рядом с Манчестер Gorton, но не Манчестер Withington.

In[20]: adjacents['Manchester Central']['Manchester Withington'] 
Out[20]: False 

In[21]: adjacents['Manchester Central']['Manchester Gorton'] 
Out[21]: True 

Какой самый лучший способ вернуть имена столбцов для всех столбцов в строке которые True? (Я думаю, что это может быть что-то делать с np.argmax(), но не вполне может понять это.)

ответ

1

Ну, вы могли сделать это, но так как ваша матрица, кажется, symmetric вы бы лучше отыскания имен строк вместо этого, так как это намного проще:

adjacents[adjacents['Manchester Central']].index 

BTW - при доступе точного местоположения в таблице, то лучше рекомендуется использовать loc:

adjacents.loc['Manchester Central', 'Manchester Gorton'] 
Смежные вопросы