【发布时间】:2020-06-17 23:36:48
【问题描述】:
我在下面有这个数据框:
df=pd.DataFrame({'cnpj':[410000132,410000132,4830624000197,4830624000197,4830624000197],'Nome Pessoa':['EUGENIO LUPORINI NETO','JUAN MATIAS SERAGOPIAN','EUGENIO LUPORINI NETO','SIMONE FANKHAUSER','ALEX SOUZA']})
print(df)
cnpj Nome Pessoa
0 410000132 EUGENIO LUPORINI NETO
1 410000132 JUAN MATIAS SERAGOPIAN
2 4830624000197 EUGENIO LUPORINI NETO
3 4830624000197 SIMONE FANKHAUSER
4 4830624000197 ALEX SOUZA
每个cnpj 都是一家公司。每个Nome Pessoa 都是一个人。我想列出每个Nome Pessoa,其他人与他出现相同的cnpj(最好没有重复)。换句话说,我将使用cnpj 作为键来列出人们之间的关系,df 看起来像这样(或至少接近它):
cnpj Nome Pessoa Relations
0 410000132 EUGENIO LUPORINI NETO ['JUAN MATIAS SERAGOPIAN','SIMONE FANKHAUSER','ALEX SOUZA']
1 410000132 JUAN MATIAS SERAGOPIAN ['EUGENIO LUPORINI NETO']
2 4830624000197 EUGENIO LUPORINI NETO ['JUAN MATIAS SERAGOPIAN','SIMONE FANKHAUSER','ALEX SOUZA']
3 4830624000197 SIMONE FANKHAUSER ['EUGENIO LUPORINI NETO','ALEX SOUZA']
4 4830624000197 ALEX SOUZA ['EUGENIO LUPORINI NETO','SIMONE FANKHAUSER']
比如df['Relations'][0] = ['JUAN MATIAS SERAGOPIAN','SIMONE FANKHAUSER','ALEX SOUZA']就是这样,因为JUAN MATIAS SERAGOPIAN和EUGENIO LUPORINI NETO (410000132)出现在同一个cnpj中,而SIMONE FANKHAUSER和ALEX SOUZA和EUGENIO (4830624000197)一起出现在另一个cnpj中
我想这可能是 groupby 区域中的一些东西,但不知道如何实现它。
【问题讨论】:
标签: python pandas pandas-groupby