2015-10-08 44 views
2

我有一個例子熊貓數據幀:棧與行號

  A   B   C   D 
0 0.441040 0.235533 -0.899417 1.960367 
1 -0.701764 2.343389 1.293865 0.556737 
2 -0.511988 -0.260338 0.201938 1.154131 
3 1.001099 1.077759 -0.006872 -0.961884 
4 0.914676 -0.445287 -1.618399 -0.616381 
5 0.360060 -0.082711 1.010578 1.071003 

而我想到底是有層疊以上相關聯的行數的某些列。使用列的選擇和堆棧非常接近:

df[['B','C']].stack() 

0 B 0.235533 
    C -0.899417 
1 B 2.343389 
    C 1.293865 
2 B -0.260338 
    C 0.201938 
3 B 1.077759 
    C -0.006872 
4 B -0.445287 
    C -1.618399 
5 B -0.082711 
    C 1.010578 

但我想行號與每一行相關聯的,因爲這將是重要的,下面回各行涉及到原來的數據幀/表:

0 B 0.235533 
0 C -0.899417 
1 B 2.343389 
1 C 1.293865 
2 B -0.260338 
2 C 0.201938 
3 B 1.077759 
3 C -0.006872 
4 B -0.445287 
4 C -1.618399 
5 B -0.082711 
5 C 1.010578 

我不知道如何將df [['B','C']]。stack()轉換爲我想要的與每行關聯的原始行號/索引。

最後我想輸出到CSV文件的行號關聯。

回答

3

pandas.DataFrame.reset_index將多級索引推入列中。它也適用於pandas.Series

df[['B', 'C']].stack().reset_index() 
+0

我知道這一定很容易。謝謝。 – brechmos