Ответы пользователя по тегу Аналитика
  • Как разделить данные в строке Pandas?

    @PavelMos
    Имхо целесообразнее сделать атрибуты вроде "являяется ли комедией ? да/нет (1/0)", для этого ввести доп. столбцы. Если дублировать строки, то также сильно увеличится размер датафрейма.

    import pandas
    df1=pandas.DataFrame.from_records((
        (1, 'xxx', 'Adv|Ani|Doc'),
        (2, 'yyy', 'Adv|Doc'),
        (3, 'zzz', 'Comedy|Doc')),
    columns=['movieId','title','genres'])
    genres_list=('Adv','Ani','Doc','Comedy')
    for i in genres_list:
        df1[i]=[0]*len(df1) #сначала прописать всем нули
    print (df1)
    for idx, row in df1.iterrows():
        c=(row[2])
        l=c.split('|')
        for g in genres_list:
            if g in l:
                df1.loc[idx, g]=1
    print (df1)
       movieId title       genres  Adv  Ani  Doc  Comedy
    0        1   xxx  Adv|Ani|Doc    0    0    0       0
    1        2   yyy      Adv|Doc    0    0    0       0
    2        3   zzz   Comedy|Doc    0    0    0       0
       movieId title       genres  Adv  Ani  Doc  Comedy
    0        1   xxx  Adv|Ani|Doc    1    1    1       0
    1        2   yyy      Adv|Doc    1    0    1       0
    2        3   zzz   Comedy|Doc    0    0    1       1
    Ответ написан
    Комментировать