2013-02-27 6 views
2

Я пытаюсь выбрать различные столбцы в панд dataframe с помощью клавиши выбораВыбор различных столбцов в панд dataframe

Допустим, мой dataframe есть

import pandas as pnd 
s1 = pnd.Series ([0,3,6,7]) 
s2 = pnd.Series ([1,4,8,9]) 
s3 = pnd.Series ([2,5,10,11]) 
df = pnd.DataFrame({'A':s1, 'B':s2, 'C':s3}) 

    A B C 
0 0 1 2 
1 3 4 5 
2 6 8 10 
3 7 9 11 

и мой ключ выбор,

s4 = pnd.Series (['A','B','C','A']) 


0 A 
1 B 
2 C 
3 A 

Мой желаемый результат,

0 0 
1 4 
2 10 
3 7 

Я предполагаю, что я мог запустить цикл, чтобы сделать это

l = [] 
for idx in df.index: 
    l.append(df[s4[idx]][idx]) 
s5 = pnd.Series(l) 
print s5 

Есть ли лучше/короче/более эффективный способ?

+0

'df.stack(). Ix [zip (s4.index, s4)]'?, Но вы получите многоуровневый индекс, не уверен, что это нормально – herrfz

ответ

Смежные вопросы