Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将值列表转换为二进制列_Python_Pandas_Dataframe - Fatal编程技术网

Python 将值列表转换为二进制列

Python 将值列表转换为二进制列,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个购买各种物品的用户的数据框架。我想将该值列表拆分为单独的列,并为购买该项目的用户设置一个二进制标志 输入: 预期产出: 我一步一步的尝试 这是我的第一步: 0 123 0 456 1 123 2 456 2 789 使用pd.get_dummiesdf['B']进行爆炸: 它在索引df.joinpd.get_dummiesdf['B']上组合在一起。分解: 问题: 现在我只需要分组并合并。然而,由于成百上千万的行和客户购买了100种产品,这种连接/组合方法

我有一个购买各种物品的用户的数据框架。我想将该值列表拆分为单独的列,并为购买该项目的用户设置一个二进制标志

输入:

预期产出:

我一步一步的尝试

这是我的第一步:

0    123
0    456
1    123
2    456
2    789
使用pd.get_dummiesdf['B']进行爆炸:

它在索引df.joinpd.get_dummiesdf['B']上组合在一起。分解:

问题:


现在我只需要分组并合并。然而,由于成百上千万的行和客户购买了100种产品,这种连接/组合方法效率极低。是否有更友好的或内置的函数可以执行此操作?

您可以替换pd.get\u dummiesdf['B']。使用pd.get\u dummiesdf.B.explode.sumlevel=0进行分解并加入。

您可以替换pd.get\u dummiesdf['B'].pd.get_dummiesdf.B.explode.sumlevel=0并加入。

对于性能,您也可以尝试使用MultiLabelBinarizer。对于性能,您也可以尝试使用MultiLabelBinarizer
       A           B  123  456  789
0  James  [123, 456]    1    1    0
1   Mary       [123]    1    0    0
2   John  [456, 789]    0    1    1
0    123
0    456
1    123
2    456
2    789
   123  456  789
0    1    0    0
0    0    1    0
1    1    0    0
2    0    1    0
2    0    0    1
       A           B  123  456  789
0  James  [123, 456]    1    0    0
0  James  [123, 456]    0    1    0
1   Mary       [123]    1    0    0
2   John  [456, 789]    0    1    0
2   John  [456, 789]    0    0    1