Как вы распаковываете столбцы в DataFrame? - PullRequest
3 голосов
/ 26 сентября 2019

У меня есть DataFrame, 'df', 53 столбца и 1740 строк.Столбцы включают в себя;'Age', 'RaceOne', 'RaceTwo', 'RaceThree', 'Name', 'Identity' ... и т. Д. Но я хочу реорганизовать DataFrame таким образом, чтобы новая переменная RaceTimes заменяла RaceOne, RaceTwo, 'RaceThree' и остальные столбцы DataFrame следуют определенному примеру, как показано во втором DataFrame ниже ...

Current df:

'Age'   'RaceOne'   'RaceTwo'   'RaceThree'   'Name'   'Identity'   ...   'Male/Female         
 25      15:40:00    15:35:00    15:39:00      Wendy     105888     ...    Female
 26      15:43:00    15:25:00    15:15:00      Steve     114342     ...    Male
 22      15:20:00    15:31:00    15:23:00      Ant       123553     ...    Male

Что бы яхотелось бы увидеть ...

'Age'   'RaceTimes'   'Name'   'Identity'   ...   'Male/Female'
 25      15:40:00      Wendy    105888      ...    Female
 25      15:35:00      Wendy    105888      ...    Female
 25      15:39:00      Wendy    105888      ...    Female
 26      15:43:00      Steve    114342      ...    Male
 26      15:25:00      Steve    114342      ...    Male
 26      15:15:00      Steve    114342      ...    Male
 22      15:20:00      Ant      123553      ...    Male
 22      15:31:00      Ant      123553      ...    Male
 22      15:23:00      Ant      123553      ...    Male

Ответы [ 2 ]

1 голос
/ 26 сентября 2019

IIUC, чек pd.wide_to_long:

final=(pd.wide_to_long(df,'Race',i='Age',j='v',sep='',suffix='\w+').reset_index(1,drop=True)
 .sort_index().reset_index())

   Age Male/Female   Name  Identity  ...      Race
0   22        Male    Ant    123553  ...  15:20:00
1   22        Male    Ant    123553  ...  15:31:00
2   22        Male    Ant    123553  ...  15:23:00
3   25      Female  Wendy    105888  ...  15:40:00
4   25      Female  Wendy    105888  ...  15:35:00
5   25      Female  Wendy    105888  ...  15:39:00
6   26        Male  Steve    114342  ...  15:43:00
7   26        Male  Steve    114342  ...  15:25:00
8   26        Male  Steve    114342  ...  15:15:00
0 голосов
/ 26 сентября 2019

Прежде всего, пожалуйста, внимательно изучите.

В Pandas встроено решение вашей проблемы. Вы можете преобразовать свой DataFrame из широкоформатного в длинный формат, используя pd.melt . Взгляните на примеры .Это довольно просто.

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