Python 有没有办法不使用for循环转置这个表

Python 有没有办法不使用for循环转置这个表,python,pandas,Python,Pandas,我有以下数据帧: import pandas as pd df = pd.DataFrame([[1, 100, 300, 250], [2, 475, 200, 0], [3, 125, 365, 100]], columns=['Client_ID', 'Purchase 1', 'Purchase 2', 'Purchase 3']) ╔═══════════╦════════════╦══════════

我有以下数据帧:

import pandas as pd

df = pd.DataFrame([[1, 100, 300, 250], 
                   [2, 475, 200, 0], 
                   [3, 125, 365, 100]], columns=['Client_ID', 'Purchase 1', 'Purchase 2', 'Purchase 3'])

╔═══════════╦════════════╦════════════╦════════════╗
║ Client_ID ║ Purchase 1 ║ Purchase 2 ║ Purchase 3 ║
╠═══════════╬════════════╬════════════╬════════════╣
║         1 ║        100 ║        300 ║        250 ║
║         2 ║        475 ║        200 ║          0 ║
║         3 ║        125 ║        365 ║        100 ║
╚═══════════╩════════════╩════════════╩════════════╝
我想将该表转置如下:

╔═══════════╦═══════════╗
║ Client_ID ║ Purchases ║
╠═══════════╬═══════════╣
║         1 ║       100 ║
║         1 ║       300 ║
║         1 ║       250 ║
║         2 ║       475 ║
║         2 ║       200 ║
║         2 ║         0 ║
║         3 ║       125 ║
║         3 ║       365 ║
║         3 ║       100 ║
╚═══════════╩═══════════╝
我尝试了df.T,但没有成功,我不想使用for循环。有没有办法做到这一点?

您可以:

df.melt('Client_ID', value_name='Purchases').set_index('Client_ID').sort_index().drop('variable', axis=1)
给予:

           Purchases
Client_ID           
1                100
1                300
1                250
2                475
2                200
2                  0
3                125
3                365
3                100
你可以做:

df.melt('Client_ID', value_name='Purchases').set_index('Client_ID').sort_index().drop('variable', axis=1)
给予:

           Purchases
Client_ID           
1                100
1                300
1                250
2                475
2                200
2                  0
3                125
3                365
3                100

这看起来像一个轴心。@Alolz顺序不重要!这回答了你的问题吗?这看起来像一个轴心。@Alolz顺序不重要!这回答了你的问题吗?