是否有使用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限制数据透视表的行数的功能?的主要内容,如果未能解决你的问题,请参考以下文章