基于pandas列所属组的所有排列和组合

2024-04-25 09:12:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个熊猫数据框,里面有城市名称和它们所属的州。我试图获得所有可能的组合城市名称比较每个州。在

示例数据帧:

City State
----------

LosA Cali 
SanJ Cali
SanF Cali
Char NC
Rale NC

预期答案:

^{pr2}$

我使用了itertools中的组合,它给出了整个组合,但是有没有一种方法可以根据状态来实现呢?在


Tags: 数据答案名称示例citycalistateitertools
1条回答
网友
1楼 · 发布于 2024-04-25 09:12:36

使用groupby+itertools.combinations的组合:

from itertools import combinations

g = df.groupby('State').apply(lambda x: 
      pd.Series(list(combinations(x.City, 2))))

df = pd.DataFrame(g.apply(list).tolist(), columns=['City1', 'City2'])
df['State'] = g.index.get_level_values(0)

df

  City1 City2 State
0  LosA  SanJ  Cali
1  LosA  SanF  Cali
2  SanJ  SanF  Cali
3  Char  Rale    NC

相关问题 更多 >