Tenho o seguinte dataframe:
import pandas as pd
d = {'Name': ['DataSource', 'DataSource'], 'DomainCode': ['Pr', 'Gov'], 'DomainName': ['Private', 'Government']}
df = pd.DataFrame(data=d)
Então o dataframe é o seguinte:
Name DomainCode DomainName
0 DataSource Pr Private
1 DataSource Gov Government
Preciso agrupá-lo pelo nome para receber duas listas:
Name DomainCode DomainName
0 DataSource [Pr, Gov] [Private, Government]
Eu entendo como fazer isso para uma única coluna:
df = df.groupby("Name")["DomainCode"].apply(list).reset_index()
quando eu recebo
Name DomainCode
0 A_DataSource [GOV, PR]
mas não consigo adicionar a segunda coluna lá, não importa o que eu tenha tentado. Como fazer isso?
Outra questão é que a lista retornada pelo comando anterior não é uma lista, pois tem comprimento 1, e não 2.
Por favor, use a seguinte linha:
Quando você executa esta linha
Ele retorna 1 em vez de 2 porque o Pandas está armazenando a lista como uma única string ('[Pr, Gov]') em vez de uma lista Python verdadeira.
Para conversão para lista real (do comentário):
Ou:
Ou:
Ou:
Saída:
Experimente isto