Создание фрейма данных из другого фрейма данных и списка - PullRequest
0 голосов
/ 14 октября 2018

У меня есть список имен, подобных этому

names= [Josh,Jon,Adam,Barsa,Fekse,Bravo,Talyo,Zidane]

, и у меня есть такой фрейм данных

    Number  Names  
0   1       Josh   
1   2       Jon    
2   3       Adam   
3   4       Barsa  
4   5       Fekse  
5   6       Barsa  
6   7       Barsa 
7   8       Talyo  
8   9       Jon  
9   10      Zidane

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

Names Number
Josh  1
Jon   2,9
Adam  3
Barsa 4,6,7
Fekse 5
Bravo *
Talyo 8
Zidane 10

Есть ли у нас какие-либо встроенные функции для этого

1 Ответ

0 голосов
/ 14 октября 2018

Вы можете использовать GroupBy с str.join, затем reindex с вашим списком names:

res = df.groupby('Names')['Number'].apply(lambda x: ','.join(map(str, x))).to_frame()\
        .reindex(names).fillna('*').reset_index()

print(res)

    Names Number
0    Josh      1
1     Jon    2,9
2    Adam      3
3   Barsa  4,6,7
4   Fekse      5
5   Bravo      *
6   Talyo      8
7  Zidane     10
...