Я должен построить столбец данных на основе некоторых условий.Я обычно использую функцию np.where (), но в моем случае, как и ожидалось, она не работает.Мне нужно добавить столбец в df2 на основе значений другого столбца, в нашем случае «Let».Когда оно равно «a», необходимо искать значение в другом фрейме данных, в частности, оно должно возвращать поле «Dates» в df1, где поле «Species» равно значению поля «Animal»в этом индексе («Позвольте» == а).Те же рассуждения для «Age» и «Mesure».Мой код:
df1 = pd.DataFrame({'Species' : ['Falcon',
'Falcon','Falcon','tiger','Falcon','Dog'],
'Dates': ['30-01-2019', '30-01-2019','30-01-2018', '30-01-
2017', '30-01-2019', '30-01-2021'],
'Age' : [ 2.55, 23, 31, 2, -12.55, 31]})
df2 = pd.DataFrame({'Animal' : ['Dog',
'Falcon','Dog','tiger','Falcon','cat'],
'Mesure' : [2.55, 23, 31, 2,22,4],
'Let' : ['a', 'b', 'a', 'a', 'a','b']})
np.where(df2['Let'] != 'a', 1, df1[(df1['Species'] == df2['Animal'])&
(df1['Age'] == df2['Mesure'])]['Dates'])
Вывод столбца:
30-01-2019 (first record of df1)
30-01-2021 (last record)
30-01-2018 (third record)
30-01-2017 (fourth record)