Eu tenho um dataframe que contém informações do local de trabalho.
District# Site# Address
1 1 123 Bayview Ln
1 2 456 Example St
2 36 789 Hello Dr
2 44 789 Hello Dr
Estou tentando transformar esse dataframe para adicionar uma coluna com o Site# mais alto, bem como os endereços distintos quando agrupo por Distrito#. Aqui está um exemplo de como desejo que seja a saída:
District# Site# Address MaxSite# All District Addresses
1 1 123 Bayview Ln 2 123 Bayview Ln,456 Example St
1 2 456 Example St 2 123 Bayview Ln,456 Example St
2 36 789 Hello Dr 44 789 Hello Dr
2 44 789 Hello Dr 44 789 Hello Dr
Consigo obter o Max Site# fazendo
df['MaxSite#'] = df.groupby(by='District#')['Site#'].transform('max')
Mas estou tentando encontrar uma maneira semelhante de listar todos os endereços exclusivos quando agrupo por Distrito#.
Eu tentei fazer, .transform('unique')
mas esse não é um nome de função válido e retornar .agg(['unique'])
dimensões que não correspondem
Você pode usar
groupby
eagg
para obter o número máximo do site e listar todos os endereçosEntão,
merge
de volta ao dataframe original:Saída:
Existem duas etapas para obter endereços exclusivos.
District#
e os transformamos em uma única stringAll District Addresses
Série mapeandoDistrict#
para ounique_addresses
DataFrame.Saída:
Uma linha, se você preferir:
Usando
transform
: