Задать вопрос
@san_m_m

Как в pandas сделать список на основании данных нескольких столбцов?

Добрый день!

Есть DataFrame
import pandas as pd
df = pd.DataFrame({'movie': [9999999,  2,  3, 1, 9999999],
                  'rating': [3,  2,  9999999, 9999999, 3],
                  'name': [1,  2,  4, 5, 10]})


Нужно добавить еще один столбец, в котором будут данные по следующей логике...
Если в столбце movie 9999999, то берется значение из столбца rating, если в rating 9999999, то name
попробовал написать следующий код, но как мне кажется идея в корне не верна, поэтому я тут...
kol = []
for l in df:
    for i in l:
        if i['movie'] != 9999999:
            k = i['movie']
        elif i['rating'] != 9999999:
            k = i['rating']
        else:
            k = i['name']
        kol.append(k)
df['sum'] = kol
  • Вопрос задан
  • 137 просмотров
Подписаться 2 Простой 1 комментарий
Решение пользователя o5a К ответам на вопрос (2)
@o5a
Можно вынести вычисления в функцию и применить apply.
import pandas as pd
df = pd.DataFrame({'movie': [9999999,  2,  3, 1, 9999999],
                  'rating': [3,  2,  9999999, 9999999, 3],
                  'name': [1,  2,  4, 5, 10]})

def process(row):
    result = row['movie']
    if row['movie'] == 9999999:
        if row['rating'] == 9999999:
            result = row['name']
        else:
            result = row['rating']
    return result

df['sum'] = df.apply(process, axis=1)
Ответ написан
Комментировать