2016-11-11 4 views
1

Скажем, например, если у меня есть кадр данных со столбцами A - Z.Multiple нарезка в dataframe в Python

  1. Я хочу, чтобы нарезать столбец «J» и получить обратно все столбцы A - Z, исключающие столбец «J».

  2. Я хочу, чтобы нарезать все столбцы между A - Z и только вернуть столбец «J»

Заранее спасибо

ответ

3

Я думаю, что вы можете использовать DataFrame.pop, для возврата J столбца нужно преобразовать Series к DataFrame по Series.to_frame:

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

print (df) 
    A B C D F J 
0 1 4 7 1 7 5 
1 2 5 8 3 4 3 
2 3 6 9 5 3 6 

print (df.pop('J')) 
0 5 
1 3 
2 6 
Name: J, dtype: int64 

dfJ = df.pop('J').to_frame() 
print (dfJ) 
    J 
0 5 
1 3 
2 6 

print (df) 
    A B C D F 
0 1 4 7 1 7 
1 2 5 8 3 4 
2 3 6 9 5 3 

Другое решение:

cols = [col for col in df.columns if col != 'J'] 
print (df[cols]) 
    A B C D F 
0 1 4 7 1 7 
1 2 5 8 3 4 
2 3 6 9 5 3 

print (df[['J']]) 
    J 
0 5 
1 3 
2 6 
+0

Оба работали как шарм! Благодаря ! @jezrael –

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

  • Нет связанных вопросов^_^