Создание DataFrame из списка на основе определенных значений в этом списке - PullRequest
0 голосов
/ 07 мая 2018

Я помогаю жене с работой в ее начальной школе.

У меня Excel выглядит примерно так:

              score
NameA
test1           10
test2           23
test4           15
NameB
test1           10
test3           17
NameC
etc. 

What I would (ultimately) want is:

           Test1.   Test2.   Test3.   Test4.   etc
NameA.       10       23      Nan       Nan
NameB        10       Nan.     17.      Nan
NameC       
etc

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

В поисках вдохновения, поэтому все предложения приветствуются.

Маартен


Ответы [ 2 ]

0 голосов
/ 07 мая 2018

Вы можете просто изменить форматирование вашего df в pandas

df=df.reset_index()
df['New']=df.A.loc[df.score=='']

df.ffill().loc[df.score!=''].pivot('New','A','score')
Out[406]: 
A     test1 test2 test3 test4
New                          
NameA    10    23  None    15
NameB    10  None    17  None 
0 голосов
/ 07 мая 2018

Я бы предложил следующее:

1. Перестройте ваши данные в Excel в следующем формате:

   Names   test  score
0  NameA  test1     10
1  NameA  test2     23
2  NameA  test4     15
3  NameB  test1     10
4  NameB  test3     17

2. Затем простая команда unstack превратится в магию.

df = df.set_index(['Names','test'])['score'].unstack(-1)
df.index.name = None
df.columns.name = None

print(df)
        test1  test2  test3  test4
NameA   10.0   23.0    NaN   15.0
NameB   10.0    NaN   17.0    NaN
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...