Сгруппировать и перенести или развернуть в Pandas - PullRequest
0 голосов
/ 19 октября 2019

У меня есть следующее Python pandas dataframe: EventName больше, чем показано на эту дату. У каждого будет Race_Number = 'Race 1', 'Race 2' и т. Д. Через некоторое время дата увеличивается. enter image description here.

Я пытаюсь создать фрейм данных, который выглядит следующим образом:

enter image description here

Каждая раса имеет разное количество бегунов. Есть ли способ сделать это в пандах ? Спасибо

1 Ответ

0 голосов
/ 19 октября 2019

Я предполагал, что вывод будет другим DataFrame.

import pandas as pd
import numpy as np
from nltk import flatten
import copy

df = pd.DataFrame({'EventName': ['sydney', 'sydney', 'sydney', 'sydney', 'sydney', 'sydney'],
                   'Date': ['2019-01.01', '2019-01.01', '2019-01.01', '2019-01.01', '2019-01.01', '2019-01.01'],
                   'Race_Number': ['Race1', 'Race1', 'Race1', 'Race2', 'Race2', 'Race3'],
                   'Number': [4, 7, 2, 9, 5, 10]
                   })
print(df)

dic={}
for rows in df.itertuples():
    if rows.Race_Number in dic:
        dic[rows.Race_Number] = flatten([dic[rows.Race_Number], rows.Number])
    else:
        dic[rows.Race_Number] = rows.Number

copy_dic = copy.deepcopy(dic)
seq = np.arange(0,len(dic.keys()))
for key, n_key in zip(copy_dic, seq):
    dic[n_key] = dic.pop(key)

df = pd.DataFrame([dic])

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