pandas dataframe создает новый двоичный столбец активности на основе другого файла, содержащего столбец имен

1
                  LigandName    Score
0   _017_model1/_017_model1     -10.54
1   _010_model1/_010_model1     -9.49
2   _113_model1/_113_model1     -9.40
3   _009_model1/_009_model1     -9.37
4   _193_model1/_193_model1     -9.36

Это первые несколько строк данных. Я хочу добавить новый столбец IsActive, основанный на наличии LigandName в этом файле. Это файл

0   _017_model1/_017_model1
1   _010_model1/_010_model1
2   _113_model1/_113_model1
3   _009_model1/_009_model1
4   _004_model1/_004_model1

Если присутствует LigandName, запись IsActive должна быть 1 и 0, если она не была. Что я должен делать?

Теги:
pandas
dataframe

1 ответ

1
Лучший ответ

Создать Series.isin маску с помощью Series.isin и Series.isin к целым числам - True - 1 и False - 0:

print (df1)
                LigandName
0  _017_model1/_017_model1
1  _010_model1/_010_model1
2  _113_model1/_113_model1
3  _009_model1/_009_model1
4  _004_model1/_004_model1

df['IsActive'] = df['LigandName'].isin(df1['LigandName']).astype(int)
print (df)
                LigandName  Score  IsActive
0  _017_model1/_017_model1 -10.54         1
1  _010_model1/_010_model1  -9.49         1
2  _113_model1/_113_model1  -9.40         1
3  _009_model1/_009_model1  -9.37         1
4  _193_model1/_193_model1  -9.36         0
  • 0
    Когда по какой-то причине я пытаюсь получить доступ к df ['LigandName'], возникает ошибка. Почему это происходит? Ключевая ошибка.
  • 1
    Хорошо, второй файл конвертируется в DataFrame? Например, df1 = pd.read_csv(file, names=['LigandName']) ?
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню