view index,sort results export,pivot table python pandas

时间:2016-12-29 14:21:30

标签: python pandas pivot

我在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 shell)中看到的是:

v2   v1 
c    5
a    6
b    6

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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