获取Datafram中多个groupby中的公共值

2024-03-29 11:21:49 发布

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

我不熟悉Pandas dataframe,我想在多个按“col1”分组的组中找到“col2”的公共值

 col1    col2
  a       abc
          pqr
          xyz

  b       abc      
          def
          bcd

  c       bcd
          efg

输出应如下所示:

     abc      [a,b]
     bcd      [b,c]

有人能帮我解决这个问题吗?你知道吗

谢谢。你知道吗


Tags: dataframepandasdefcol2col1abcxyzpqr
1条回答
网友
1楼 · 发布于 2024-03-29 11:21:49

用途:

df['col1'] = df['col1'].replace('',np.nan).ffill()

s = df.groupby('col2')['col1'].apply(list)
s = s[s.str.len() > 1].reset_index()
print (s)
  col2    col1
0  abc  [a, b]
1  bcd  [b, c]

解释:

  1. 第一个^{}空值到NaNs并向前填充NaNs
  2. 对于col2聚合list的每个值
  3. 按长度按^{}筛选列表

相关问题 更多 >