Столбцы заказа в датафрейме на основе клиентов - PullRequest
0 голосов
/ 11 октября 2019

У меня есть несколько столбцов в моем фрейме данных (объединены ранее), скажем:

client_10, visit_10, client_11, visit_11, ...

Мне нужноупорядочить столбцы, например:

client_1, visit_1, client_2, visit_2, ...

При каждом запуске кода у меня может быть разное количество клиентов, поэтому нет фиксированной конечной точки.

Каков наилучший способ сортировки моих столбцов?

Ответы [ 2 ]

1 голос
/ 11 октября 2019

Ответ выше, предоставленный @ https://stackoverflow.com/users/3510736/ami-tavory лучше .. Это еще один удар в него ..

ls = ['client_2','visit_3', 'client_1', 'visit_2', 'client_3', 'visit_1']
ls = sorted(list(ls), key=lambda n: (n.split('_')[0], int(n.split('_')[1])))
mid = (len(ls)//2)

print([item for sublist in list(zip(ls[:mid], ls[mid:])) for item in sublist])
>>>['client_1', 'visit_1', 'client_2', 'visit_2', 'client_3', 'visit_3']
1 голос
/ 11 октября 2019

Попробуйте что-то вроде:

df = df[sorted(list(df.columns), key=lambda n: (int(n.split('_')[1]), n.split('_')[0]))]
  • list(df.columns) - список столбцов

  • sorted(...) сортирует их в соответствии сзатем число client, visit

  • взять df[...] результат и присвоить его df

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...