Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/305.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_Matrix - Fatal编程技术网

两个数据帧的共现矩阵。python

两个数据帧的共现矩阵。python,python,pandas,dataframe,matrix,Python,Pandas,Dataframe,Matrix,我有两个数据框,食物和饮料 food = {'fruit':['Apple', np.nan, 'Apple'], 'food':['Cake', 'Bread', np.nan]} # Create DataFrame food = pd.DataFrame(food) fruit food 0 Apple Cake 1 NaN Bread 2 Apple NaN 这些行表示特定的客户。 我想做一个食物和饮料的共生矩阵 预期结果:(

我有两个数据框,食物和饮料

food = {'fruit':['Apple', np.nan, 'Apple'],
        'food':['Cake', 'Bread', np.nan]} 
# Create DataFrame
food = pd.DataFrame(food)

    fruit   food
0   Apple   Cake
1   NaN     Bread
2   Apple   NaN
这些行表示特定的客户。 我想做一个食物和饮料的共生矩阵

预期结果:(列和ID不必按此顺序排列)

到目前为止,我可以为每个df创建一个共现矩阵,但我不知道如何绑定这两个数据帧


谢谢。

我想你想要的是
pd.get\u dummies
和矩阵乘法:

pd.get_dummies(drink). T @ pd.get_dummies(food)
输出:

                       fruit_Apple  food_Bread  food_Cake
smoothie_S_Strawberry            1           0          1
smoothie_S_Watermelon            0           1          0
tea_T_green                      1           0          0
tea_T_white                      1           0          1
              Apple  Bread  Cake
S_Strawberry      1      0     1
S_Watermelon      0      1     0
T_green           1      0     0
T_white           1      0     1
您可以使用以下方法除去前缀:

pd.get_dummies(drink, prefix='', prefix_sep=''). T @ pd.get_dummies(food, prefix='', prefix_sep='')
输出:

                       fruit_Apple  food_Bread  food_Cake
smoothie_S_Strawberry            1           0          1
smoothie_S_Watermelon            0           1          0
tea_T_green                      1           0          0
tea_T_white                      1           0          1
              Apple  Bread  Cake
S_Strawberry      1      0     1
S_Watermelon      0      1     0
T_green           1      0     0
T_white           1      0     1

我没有得到预期的输出。香蕉从哪里来?@QuangHoang谢谢你指出,它本来是面包:)我已经更新了。