Python 重新组织列和行的数据帧

Python 重新组织列和行的数据帧,python,pandas,Python,Pandas,我正在尝试合并来自提供者的频道列表,以将所有频道显示为行索引,并将值显示为提供者名称。目前组织如下: DIRECTV FUBO YOUTUBE TV 0 A&E A&E ABC 1 ABC ADULT SWIM AMC 2 ACCUWEATHER AMC ANIMAL PLANET 3

我正在尝试合并来自提供者的频道列表,以将所有频道显示为行索引,并将值显示为提供者名称。目前组织如下:

         DIRECTV           FUBO     YOUTUBE TV
0            A&E            A&E            ABC
1            ABC     ADULT SWIM            AMC
2    ACCUWEATHER            AMC  ANIMAL PLANET
3            AMC  ANIMAL PLANET            BBC
4  ANIMAL PLANET            BBC      BBC WORLD
我希望结果是(标题行可以是任何内容):

我相信这应该通过简单的连接、合并或其他方式来完成,但我无法让它工作。任何帮助都将不胜感激


注意:上面的图片显然只是列表的一个小样本,索引列应该是来自所有提供者的每个唯一通道。类似于“df.values.unique()。是的,我知道这不起作用。

IIUC,这是一个
melt
+
交叉表问题



如果您想要一个简单的
1
0
(如果存在值),只需从交叉表中省略
aggfunc
values
参数即可:

pd.crosstab(u['channel'], u['provider'])


请以文本而不是图像的形式发布框架。在每个单元格中重复这个词是没有意义的。更自然的是,您将提供程序作为列标题,而不是1和0表示存在或不存在。(这是一个典型的虚拟问题)谢谢,这成功了。我不明白,但我会努力学习。熔化+交叉表。
u = df.melt(
    var_name='provider',
    value_name='channel'
)

pd.crosstab(
  index=u['channel'],
  columns=u['provider'],
  values=u['provider'],
  aggfunc='first'
)
provider       DIRECTV  FUBO  YOUTUBE TV
channel
A&E            DIRECTV  FUBO         NaN
ABC            DIRECTV   NaN  YOUTUBE TV
ACCUWEATHER    DIRECTV   NaN         NaN
ADULT SWIM         NaN  FUBO         NaN
AMC            DIRECTV  FUBO  YOUTUBE TV
ANIMAL PLANET  DIRECTV  FUBO  YOUTUBE TV
BBC                NaN  FUBO  YOUTUBE TV
BBC WORLD          NaN   NaN  YOUTUBE TV
pd.crosstab(u['channel'], u['provider'])
provider       DIRECTV  FUBO  YOUTUBE TV
channel
A&E                  1     1           0
ABC                  1     0           1
ACCUWEATHER          1     0           0
ADULT SWIM           0     1           0
AMC                  1     1           1
ANIMAL PLANET        1     1           1
BBC                  0     1           1
BBC WORLD            0     0           1