Python 将数据帧列复制到数据透视表中的单元格

Python 将数据帧列复制到数据透视表中的单元格,python,numpy,pandas,Python,Numpy,Pandas,我有一个数据帧,看起来像以下内容: | A | B | C | D ---+---+---+---+--- 1 | a | c | e | g ---+---+---+---+--- 2 | a | c | e | h ---+---+---+---+--- 3 | b | d | f | i 我希望从中得到一个数据透视表,a在列中,B在行中,然后C和D作为集合,如下所示: | a | b ---+-----------+-------- c | (e

我有一个数据帧,看起来像以下内容:

   | A | B | C | D
---+---+---+---+---
 1 | a | c | e | g
---+---+---+---+---
 2 | a | c | e | h
---+---+---+---+---
 3 | b | d | f | i
我希望从中得到一个数据透视表,a在列中,B在行中,然后C和D作为集合,如下所示:

   |     a     |    b
---+-----------+--------
 c | (e, h, i) |   ()
---+-----------+--------
 d |    ()     | (f, i)
然后:

或者,您可以使用唯一元素的元组而不是set object:

>>> f = lambda obj: tuple(np.unique(obj[['C', 'D']].values))
>>> df.groupby(['B', 'A']).apply(f).unstack()
A          a       b
B                   
c  (e, g, h)     NaN
d        NaN  (f, i)
>>> f = lambda obj: tuple(np.unique(obj[['C', 'D']].values))
>>> df.groupby(['B', 'A']).apply(f).unstack()
A          a       b
B                   
c  (e, g, h)     NaN
d        NaN  (f, i)