2016-03-26 1 views
1

Учитывая следующий кадр данных:Панды использовать переменную для имен столбцов

import pandas as pd 
import numpy as np 
df = pd.DataFrame({'A':[1,2,3], 
        'B':[4,5,6], 
        'C':[7,8,9]}) 

df 

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

Как я могу получить доступ к столбцам с помощью переменного?

Я попытался это:

cols='A','B' 
df[cols] 

... в результате чего в этом:

KeyError: ('A', 'B') 

Бонус Вопрос: Что делать, если кадр данных были такими ?:

import pandas as pd 
import numpy as np 
df = pd.DataFrame({'A':[1,2,3], 
        'B':[4,5,6], 
        'C':[7,8,9], 
        'D':[1,3,5], 
        'E':[5,3,6], 
        'F':[7,4,3]}) 

df 

    A B C D E F 
0 1 4 7 1 5 7 
1 2 5 8 3 3 4 
2 3 6 9 5 6 3 

, и я хотел сделать это ?:

cols=['A','B'] 
cols2=['C','D'] 
df[cols,'F',cols2] 

Заранее благодарен!

ответ

2

Вы можете попробовать подмножество по list имен столбцов:

cols=['A','B'] 
print df[cols] 
    A B 
0 1 4 
1 2 5 
2 3 6 

Это так же, как:

print df[['A','B']] 
    A B 
0 1 4 
1 2 5 
2 3 6 

Bonus ответ:

cols=['A','B'] 
cols2=['C','D'] 

allcols = cols + ['F'] + cols2 
print df[allcols] 
    A B F C D 
0 1 4 7 7 1 
1 2 5 4 8 3 
2 3 6 3 9 5 
+0

Спасибо. Я могу принять ответ за 4 минуты. Если вы не возражаете, я отправляю расширение на вопрос выше, но создаст новый вопрос, если вы предпочитаете. –

+0

Жесткий вопрос, что лучше. Это тебе решать. – jezrael

+0

Хорошо, я просто отправлю его сюда, если я не получу ответа. Я думаю, что это будет довольно легко. –

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