我在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
答案 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