两个数据帧的共现矩阵。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谢谢你指出,它本来是面包:)我已经更新了。