Присвоение номеров категории в фрейме данных pandas

У меня есть следующий фрейм данных:

#ИДЕНТИФИКАТОР Счет 1029 78 1229 89 1929 г. 77 2124 100 3120 89 4145 84

Я хочу создать следующий фрейм данных:

#ИДЕНТИФИКАТОР Классификация Счет 1029 Первокурсник 78 1229 Первокурсник 89 1929 г. Первокурсник 77 2124 второкурсник 100 3120 Джуниор 89 4145 Старшая 84

Таким образом, назначение столбца «Классификация» зависит от первой цифры столбца «#ID». Мой исходный фрейм данных содержит тысячи записей, поэтому создание словаря на самом деле не вариант. Есть ли более простой способ сделать это?

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
0
886
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

На самом деле вы можете использовать словарь только для сопоставления возможных первых цифр, а затем вы можете использовать apply следующим образом:

classification = {
    '1': 'Freshman',
    '2': 'Sophomore',
    '3': 'Junior',
    '4': 'Senior'
}

df['Classification'] = df['#ID'].apply(lambda id: classification[str(id)[0]])

Что приводит к вашему желаемому кадру данных:

    #ID  Score Classification
0  1029     78       Freshman
1  1229     89       Freshman
2  1929     77       Freshman
3  2124    100      Sophomore
4  3120     89         Junior
5  4145     84         Senior

Спасибо за ответ. Это полезно. Как изменился бы код, если бы только несколько идентификаторов нужно было присвоить классификации «Другое»? Например, идентификаторы 4225 и 4349 должны быть назначены «Другому», даже если первая цифра 4?

Illusionista787 15.12.2020 23:48

Вы можете создать список этих конкретных идентификаторов (например, с именем ids), а затем запустить df.loc[df['#ID'].isin(ids), 'Classification'] = 'Other'

Ralubrusto 15.12.2020 23:51

Если мой ответ помог вам, не забудьте «Принять», чтобы этот вопрос был помечен как решенный.

Ralubrusto 15.12.2020 23:54

Я сделал это сейчас. Спасибо. Спасибо за вашу помощь.

Illusionista787 16.12.2020 15:45

Другие вопросы по теме

Похожие вопросы