Как создать колонку по 2 условиям?
Необходимо создать столбец со значениями наиболее часто встречающихся для этого адреса дат.
d = {'name': [['rick', 'mike', 'morty'], 'NaN', ['brick', 'nick'], ['rick', 'reaven', 'bart', 'homer'], ['rick', 'morty']],
'Date': ['11/05/2011', '9/02/2010', '1/01/2014', '12/20/2020', '11/05/2011'],
'Address': ['AR', 'YU', 'RU', 'AR', 'AR'],
}
df = pd.DataFrame(data = d)
Нужно постараться не использовать циклы. Должно получиться так
d = {'name': [['rick', 'mike', 'morty'], 'NaN', ['brick', 'nick'], ['rick', 'reaven', 'bart', 'homer'], ['rick', 'morty']],
'Date': ['11/05/2011', '9/02/2010', '1/01/2014', '12/20/2020', '11/05/2011'],
'Address': ['AR', 'YU', 'RU', 'AR', 'AR'],
'Temp': ['11/05/2011', '9/02/2010', '1/01/2014', '11/05/2011', '11/05/2011']}
df = pd.DataFrame(data = d)
Ответы (1 шт):
Автор решения: SergFSM
→ Ссылка
можно попробовать что-то вроде этого:
df['Temp'] = df.groupby('Address')['Date'].transform(lambda x: x.mode()[0])
>>> df
'''
name Date Address Temp
0 [rick, mike, morty] 11/05/2011 AR 11/05/2011
1 NaN 9/02/2010 YU 9/02/2010
2 [brick, nick] 1/01/2014 RU 1/01/2014
3 [rick, reaven, bart, homer] 12/20/2020 AR 11/05/2011
4 [rick, morty] 11/05/2011 AR 11/05/2011