Skip to main content
 首页 » 编程设计

python之pandas dataframe 将列转换为行

2025年05月04日1698°冷暖

我正在寻找一种方法将我的数据框列转换为行。以下是我的示例数据框:

mylist= [['xx'], [None, 'yy'], ['xx', None], ['xx',None],['xx','yy']] 
 
pd.DataFrame(mylist,index=['A','B','C','D','E'],columns=['Col1','Col2']) 

输入数据帧:

------------------- 
Ind | Col1 | Col2 | 
------------------- 
A   | xx   | None | 
B   | None | yy   | 
C   | xx   | None | 
D   | xx   | None | 
E   | xx   | yy   | 
------------------- 

我想将我的列拆分为数据框中的单独行。下面是我想要的输出的样子。谁能建议如何实现以下目标。

所需的数据框:

------------------------ 
Ind | Values | Columns | 
------------------------ 
A   | xx     | Col1    | 
B   | yy     | Col2    | 
C   | xx     | Col1    | 
D   | xx     | Col1    | 
E   | xx     | Col1    | 
E   | xx     | Col2    | 
------------------------ 

谢谢,
呵呵

请您参考如下方法:

另一种选择是使用melt:

longDf = pd.melt(df.reset_index(), id_vars=['index'], var_name=['Columns']) 
longDf[pd.notnull(longDf.value)] 
 
  index Columns value 
0   A   Col1    xx 
2   C   Col1    xx 
3   D   Col1    xx 
4   E   Col1    xx 
6   B   Col2    yy 
9   E   Col2    yy