Python 熊猫从数据帧创建成对数据

Python 熊猫从数据帧创建成对数据,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个像这样的pd数据框 User M&Ms Skittles Snickers Laffy Taffy Caramel Chew 0 Lara 3 0 0 0 0 1 Daisy 4 0 1 1 0 2 Alyx 0 0 0

我有一个像这样的pd数据框

    User  M&Ms  Skittles  Snickers  Laffy Taffy  Caramel Chew
0   Lara     3         0         0            0             0
1  Daisy     4         0         1            1             0
2   Alyx     0         0         0            0             5
3  Sarah     0         3         0            0             0
    user          item  rating
0   Lara          m_ms       3
1   Lara      snickers       5
2  Daisy          m_ms       4
3  Daisy   laffy_taffy       1
4   Alyx  caramel_chew       5
5  Sarah      skittles       3
6  Sarah      snickers       2
我想创建一个如下所示的数据帧

    User  M&Ms  Skittles  Snickers  Laffy Taffy  Caramel Chew
0   Lara     3         0         0            0             0
1  Daisy     4         0         1            1             0
2   Alyx     0         0         0            0             5
3  Sarah     0         3         0            0             0
    user          item  rating
0   Lara          m_ms       3
1   Lara      snickers       5
2  Daisy          m_ms       4
3  Daisy   laffy_taffy       1
4   Alyx  caramel_chew       5
5  Sarah      skittles       3
6  Sarah      snickers       2
有什么办法吗?谢谢

您可以使用df.stack()

使用pd.melt()是另一种选择。

您可以使用df.stack()


使用pd.melt()是另一种选择。

使用
melt
+
query

df.melt('User').query('value > 0')


使用
melt
+
query

df.melt('User').query('value > 0')


似乎您正试图
融化
您的数据:。在您的输出中,为什么“Lara”对窃笑者的评级为5,而在输入中她对窃笑者的评级为0?似乎您正在尝试
融化
您的数据:。在您的输出中,为什么“Lara”对窃笑者的评级为5,而在输入中她对窃笑者的评级为0?谢谢!真的很有用谢谢!这真的很有帮助