Arhn - архитектура программирования

python pandas – ввод значений в новый столбец

У меня есть небольшой кадр данных ниже расходов на 4 человека. Существует пустой столбец под названием «Оценка». Я хотел бы оценить тех, кто потратил более 100 долларов, на оценку A и оценку B для тех, кто потратил менее 100 долларов. Каков наиболее эффективный метод заполнения столбца «Оценка», если это большой фрейм данных?

import pandas as pd
df=pd.DataFrame({'Customer':['Bob','Ken','Steve','Joe'],
             'Spending':[130,22,313,46]})
df['Grade']=''

введите здесь описание изображения

15.12.2016


Ответы:


1

Вы можете использовать numpy.where:

df['Grade']= np.where(df['Spending'] > 100 ,'A','B')
print (df)
  Customer  Spending Grade
0      Bob       130     A
1      Ken        22     B
2    Steve       313     A
3      Joe        46     B

Время:

df=pd.DataFrame({'Customer':['Bob','Ken','Steve','Joe'],
             'Spending':[130,22,313,46]})

#[400000 rows x 4 columns]
df = pd.concat([df]*100000).reset_index(drop=True)

In [129]: %timeit df['Grade']= np.where(df['Spending'] > 100 ,'A','B')
10 loops, best of 3: 21.6 ms per loop

In [130]: %timeit df['grade'] = df.apply(lambda row: 'A' if row['Spending'] > 100 else 'B', axis = 1)
1 loop, best of 3: 7.08 s per loop
15.12.2016

2

Самый быстрый способ сделать это - использовать лямбда-функцию с функцией применения.

df['grade'] = df.apply(lambda row: 'A' if row['Spending'] > 100 else 'B', axis = 1)
15.12.2016
  • нет, apply работает очень медленно. Пожалуйста, проверьте время в моем ответе. 15.12.2016
  • @jezrael верная точка зрения. stackoverflow.com/questions/41166348 / 15.12.2016
  • Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..