繁体   English   中英

为每对唯一的列对切片数据帧

[英]Slice dataframe for each unique pair of columns

我想根据从两列中获取的唯一对来拆分熊猫数据框,然后选择相对于该对的行并投影其余的列。

df: Col1  Col2  Col3  Col4
      1     1     a    100
      1     2     b    200 
      1     2     c    300
      1     2     d    400
      3     4     e    500
      3     4     f    600

然后

idxs = (...df...) # expression on df
for idx in idxs:
    print(idx)
    group = (...df...) # expression on df
    print(group)

应该产生类似

(1,1)
Col3  Col4
  a    100

(1,2)
Col3  Col4
  b    200
  c    300
  d    400

(1,3)
Col3  Col4
  e    500
  f    600

选择和投影部分似乎很容易,但要获得唯一的配对却不容易。 我怎样才能有效地做到这一点?

使用groupby

for x,y in df.groupby(['Col1','Col2']):

    print(x)
    print(y)


(1, 1)
   Col1  Col2 Col3  Col4
0     1     1    a   100
(1, 2)
   Col1  Col2 Col3  Col4
1     1     2    b   200
2     1     2    c   300
3     1     2    d   400
(3, 4)
   Col1  Col2 Col3  Col4
4     3     4    e   500
5     3     4    f   600

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM