2016-12-29 43 views
0

我從熊貓數據透視表中創建了一個數據框表。視圖索引,排序結果導出,數據透視表python pandas

df = pd.DataFrame({'v1':[5,5,6,6,1,5], 'v2':['c','a','b','a','a','b']}) 
table=pd.pivot_table(df,index=["v2"],values=["v1"],aggfunc=max) 
table.sort_values(by='v1', ascending=True) 

1)我想在表格中看到v2的結果。

2)爲了排序我使用了一個新行,是否可以在pd.pivot_table語句中直接執行它?

3)在現實世界中,有些表太大而無法在控制檯中看到,導出結果的最佳方式是什麼,以便更好地檢查它們,導出爲.csv?

我在控制檯(Ipyhton殼)看到的是這樣的:

您的問題
v2 v1 
c 5 
a 6 
b 6 
+0

我編輯的問題:我想重現/導出我在控制檯中看到的相同結果,而在表中,我只看到v1,那麼如何將v2用作列中的列而不是索引來查看這種結果? – progster

回答

1

代替pivoting表,一個更直接的替代方案進行分組聚集;要將v2視爲普通列而不是索引,可以使用reset_index();分類部分必須單獨應用,但您可以在其他命令後直接鏈接sort_values,如果您更喜歡一個襯墊;看到控制檯一大桌,平時也可以使用.head()來查看你的表幾頂行:

df.groupby('v2').max().reset_index().sort_values('v1', ascending=True) 

# v2 v1 
#2 c 5 
#0 a 6 
#1 b 6 
0

考慮重置指數和直接在pivot_table()呼叫排序:

table = pd.pivot_table(df,index=["v2"],values=["v1"],aggfunc=max).reset_index().sort_values(by='v1', ascending=True) 

print(table) 
# v2 v1 
# 2 c 5 
# 0 a 6 
# 1 b 6