Хобрук: Ваш путь к мастерству в программировании

создать новый столбец во фрейме данных на основе другого фрейма данных

У меня есть два фрейма данных

df1:

ID  col2 col3 type
123  1.   2.   T
132  3.   1.   N
111  2.   1.   U

df2

ID   A    B   
123  0.   3.   
111  2.   3.   
132  1.   2.   

df2 содержит разную информацию об одном и том же идентификаторе, но в другом порядке.

Я хотел создать новый столбец в df2 с именем (тип) и соответствовать столбцу типа в df1. Если это тот же идентификатор, что и в df1, он должен скопировать тот же тип (T, N или U) из df1. Другими словами, мне нужно, чтобы это выглядело как

ID   A    B  type
123  0.   3.   T
111  2.   3.   U
132  1.   2.   N

Я попытался

df2['Type'] = df2[df2.ID.isin(df1.ID)]
28.04.2018

  • Это что-то вроде pd.merge(df1, df2, on='ID')[['ID', 'A', 'B', 'type']]. 28.04.2018
  • Я пробовал pd.merge(df1, df2, on='ID')[['ID', 'A', 'B', 'type']], это не сработало. Я также не хочу объединять данные или присоединяться к ним. Мне нужно добавить только один столбец из файла df2. Оба данных огромны и содержат более сотни столбцов в каждом. Я не могу указать «А», «Б» в коде, потому что их много. У вас есть другие предложения, пожалуйста? 28.04.2018
  • Я только что попробовал это сам, и это действительно работает. Кроме того, какое значение имеет количество столбцов в DataFrames? Используйте pd.merge(df1[relevant_columns1]), df2[relevant_columns2], ...), нет? Наконец, мой голос за закрытие отражает ваш вопрос, как вы его написали. Если вы что-то пробовали, и это не сработало, или работает, но кажется, что производительность слишком высока, возможно, объясните это в новом вопросе? 28.04.2018

Новые материалы

Аргументы прогрессивного улучшения почти всегда упускают суть
В наши дни в кругах веб-разработчиков много болтают о Progressive Enhancement — PE, но на самом деле почти все аргументы с обеих сторон упускают самую фундаментальную причину, по которой PE..

Введение в Джанго Фреймворк
Схема «работать умно, а не усердно» В этой и последующих статьях я познакомлю вас с тем, что такое фреймворк Django и как создать свое первое приложение с помощью простых и понятных шагов, а..

Настольный ПК как «одно кольцо, чтобы править всеми» домашних компьютеров
Вид после 9 месяцев использования С настольных компьютеров все началось, но в какой-то момент они стали «серверами», и мы все перешли на ноутбуки. В прошлом году я столкнулся с идеей настольных..

Расширенные методы безопасности для VueJS: реализация аутентификации без пароля
Руководство, которое поможет вам создавать безопасные приложения в долгосрочной перспективе Безопасность приложений часто упускается из виду в процессе разработки, потому что основная..

стройный-i18следующий
Представляем стройную оболочку для i18next. Эта библиотека, основанная на i18next, заключает экземпляр i18next в хранилище svelte и отслеживает события i18next, такие как languageChanged,..

Обзор 20 основных и современных методов работы с массивами в JavaScript
Вы знаете их всех? В этом коротком посте я покажу сводку методов, доступных в JavaScript для работы с массивами. Я надеюсь, что вы найдете это полезным! В конце поста вы найдете ссылку на..

Да, но я чувствую необходимость указать, что это или не единственные два.
Да, но я чувствую необходимость указать, что это или не единственные два. Обучение с подкреплением (в качестве примера) также является важным.