Выбор столбцов панд 'a', 'b' и от 'e' до 'g' - PullRequest
0 голосов
/ 27 августа 2018

Допустим, у меня есть кадр данных pandas со столбцами «a», «b», «c», «d», «e», «f», «g».Я хочу выбрать столбцы «a», «b» и «e» - «g».Я не хочу явно указывать имена столбцов 'e', ​​хотя 'g' как 'e', ​​'f', 'g', а использовать что-то вроде 'e': 'g'.Можно ли каким-либо образом объединить эти 'a', 'b' и 'e': 'g' в одно?

На данный момент у меня есть это с помощью pd.concat ()

pd.concat([df[:, 'a', 'b']), df[:, ['e': 'g']]], axis = 1)

Ответы [ 3 ]

0 голосов
/ 27 августа 2018

На основании официальной документации для панд вы сможете это сделать!Выберите df['e':'g'].

0 голосов
/ 27 августа 2018

Использование DataFrame.filter:

df = pd.DataFrame({'a':list('abcdef'),
                   'b':[4,5,4,5,5,4],
                   'c':[7,8,9,4,2,3],
                   'd':[1,3,5,7,1,0],
                   'e':[5,3,6,9,2,4],
                   'f':list('aaabbb'),
                   'g':[0,3,5,7,1,0],
                   'h':[2,30,50,7,1,0],})

df = df.filter(regex='[ab]|[e-g]')
print (df)

   a  b  e  f  g
0  a  4  5  a  0
1  b  5  3  a  3
2  c  4  6  a  5
3  d  5  9  b  7
4  e  5  2  b  1
5  f  4  4  b  0

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

rng = df.loc[:, 'e': 'g'].columns.tolist()
#alternative
#rng = df.columns[df.columns.get_loc('e'): df.columns.get_loc('g') + 1].tolist()

cols = ['a','b'] + rng
df = df[cols]
print (df)

   a  b  e  f  g
0  a  4  5  a  0
1  b  5  3  a  3
2  c  4  6  a  5
3  d  5  9  b  7
4  e  5  2  b  1
5  f  4  4  b  0
0 голосов
/ 27 августа 2018

с RegEx:

df.loc[:,df.columns.str.match('[ab]|[e-g]')]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...