是否有使用Pandas限制数据透视表的行数的功能?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了是否有使用Pandas限制数据透视表的行数的功能?相关的知识,希望对你有一定的参考价值。

我正在使用pandas在python中旋转数据集。在应用pivot之后,pandas中是否有一项功能可用来限制基于pivot列的行数?例如,我有一个像这样的数据集:

col1, col2, col3
A, 100, X
A, 200, Y
A, 300, Z
B, 500, X
B, 600, Y
B, 700, Z

在将枢轴应用于wrt col3之后,假设数据集变得像这样:

col1,   col2
A       600
  col3, col2
  X     100
  Y     200
  Z     300

B       1800
  col3, col2
  X     500
  Y     600
  Z     700

现在,我想将每个col1值的col3值限制为例如每个col1 2行,如下所示:

col1,   col2
A       600
  col3, col2
  X     100
  Y     200

B       1800
  col3, col2
  X     500
  Y     600

大熊猫有可能吗?

答案

'pandas'不会做我打算给您的布局。该代码将带您到达所需的距离。

df2 = pd.pivot_table(df, values='col2', index=['col1','col3'], aggfunc='sum').reset_index()
df3 = df2.groupby('col1')['col2'].sum().reset_index()

new_df = pd.concat([df2, df3], keys=['col1','col2'], axis=0, ignore_index=True).fillna('A').sort_values(['col1','col3'], ascending=[True, True])
new_df = new_df.groupby('col1').apply(lambda x: x[:-1])

new_df.set_index(['col1','col3'], drop=True)

        col2
col1 col3   
A   A   600
   X    100
   Y    200
B   A   1800
   X    500
   Y    600

以上是关于是否有使用Pandas限制数据透视表的行数的功能?的主要内容,如果未能解决你的问题,请参考以下文章

查询以获取雪花中数据库中所有表的行数

限制每个 ID 的行数

限制一个 sqlite 表的最大行数

选择数据库中所有表的行数

在 pandas 中查看 hdf5 文件中的行数

db2,oracle,mysql ,sqlserver限制返回的行数