查看索引、排序结果导出、透视表

2024-04-19 08:02:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我从pandas中的pivot表创建了一个数据帧table。你知道吗

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表判决?

3)在现实世界中,有些表格太大,在控制台中看不到,导出结果的最佳方法是什么,为了更好地检查它们,导出到.csv?你知道吗

我在控制台(Ipyhton shell)中看到的是:

v2   v1 
c    5
a    6
b    6

Tags: 数据dataframepandasdfindexbytablesort
2条回答

考虑直接在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

代替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

相关问题 更多 >