Как использовать столбцы в кадре данных для создания строк в новом кадре данных? - PullRequest
0 голосов
/ 01 апреля 2019

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

Вот мой фрейм данных:

import pandas as pd
df=pd.DataFrame(columns=["TeamNumber", "C", "C1", "W", "W1", "W2","D","D1","G", "UTIL", "DATE", "TOP" ])
df=df.append({"TeamNumber": 1, "C": "PAUL", "C1": "BOB", "W": "NIC", "W1":"ED", "W2": "ROB","D": "ERIK","D1": "JOE","G": "RED", "UTIL": "JIM", "DATE": "2017-10-12", "TOP": 0}, ignore_index= True)
df=df.append({"TeamNumber": 2, "C": "PETE", "C1": "BOBBY", "W": "FRED", "W1":"TED", "W2": "ROBY","D": "DERIK","D1": "JULIAN","G": "CARL", "UTIL": "JIMMY", "DATE": "2017-10-15", "TOP": 1}, ignore_index= True)


TeamNumber   C    C1     W  W1   W2    D    D1    G  UTIL   DATE       TOP
0   1       PAUL BOB   NIC  ED  ROB  ERIK  JOE    RED  JIM  2017-10-12  0
1   2       PETE BOBBY FRED TED ROBY DERIK JULIAN CARL JIMMY 2017-10-15 1

Я ожидаю, что результат будет:

   TOP TeamNumber  DATE Name       
0   0   1   2017-10-12  PAUL
1   0   1   2017-10-12  BOB
2   0   1   2017-10-12  NIC
3   0   1   2017-10-12  ED
4   0   1   2017-10-12  ROB
5   0   1   2017-10-12  ERIK
6   0   1   2017-10-12  JOE
7   0   1   2017-10-12  RED
8   0   1   2017-10-12  JIM
9   1   2   2017-10-15  PETE
10  1   2   2017-10-15  BOBBY
11  1   2   2017-10-15  FRED
12  1   2   2017-10-15  TED
13  1   2   2017-10-15  ROBY
14  1   2   2017-10-15  DERIK
15  1   2   2017-10-15  JULIAN
16  1   2   2017-10-15  CARL
17  1   2   2017-10-15  JIMMY    

Ответы [ 2 ]

2 голосов
/ 01 апреля 2019

Чек DataFrame.melt() в Пандах

df.melt(id_vars=['TOP','DATE' ,'TeamNumber'])[['TOP','DATE','TeamNumber','value']]
1 голос
/ 01 апреля 2019
df = df.set_index(['TOP','TeamNumber',"DATE"])
df = df.stack().reset_index().drop(['level_3'],axis=1).rename(columns = {0:'Name'})

вывод df

    TOP TeamNumber  DATE    Name
0   0   1   2017-10-12  PAUL
1   0   1   2017-10-12  BOB
2   0   1   2017-10-12  NIC
3   0   1   2017-10-12  ED
4   0   1   2017-10-12  ROB
5   0   1   2017-10-12  ERIK
6   0   1   2017-10-12  JOE
7   0   1   2017-10-12  RED
8   0   1   2017-10-12  JIM
9   1   2   2017-10-15  PETE
10  1   2   2017-10-15  BOBBY
11  1   2   2017-10-15  FRED
12  1   2   2017-10-15  TED
13  1   2   2017-10-15  ROBY
14  1   2   2017-10-15  DERIK
15  1   2   2017-10-15  JULIAN
16  1   2   2017-10-15  CARL
17  1   2   2017-10-15  JIMMY
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...