Pandas Groupby结果到一个单独的数据框中
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Pandas Groupby结果到一个单独的数据框中相关的知识,希望对你有一定的参考价值。
假设有一个包含100条记录的数据框,其中包含4(或n)列,下面是数据框的示例:
id target col3 col4
00 0 .. ..
00 0 .. ..
00 0 .. ..
01 1 .. ..
01 1 .. ..
01 0 .. ..
01 1 .. ..
02 1 .. ..
02 0 .. ..
02 1 .. ..
02 0 .. ..
..
..
基于此数据框,我想创建一个新的数据框,该数据框是此数据框上的group_by
和特定列(目标)的value_counts
的结果。
我已经弄清楚了如何获取这些值(我当前的代码):
for id, target in df.group_by('id'):
print(id)
print(group.target.value_counts())
将给我以下输出:
00
0 3
Name: target, dtype: int64
01
0 1
1 3
Name: target, dtype: int64
02
0 2
1 2
Name: target, dtype: int64
..
..
我能够获得这些值,但似乎无法将这些值传递到一个空的数据框中。我想创建一个新的数据框,以这种格式表示此信息:
id 0 1
00 3 NaN
01 1 3
02 2 2
..
..
答案
这是一种方法:
(df
.groupby('id')
.apply(lambda f: f['target'].value_counts().to_frame())
.unstack()
.reset_index(drop=True))
以上是关于Pandas Groupby结果到一个单独的数据框中的主要内容,如果未能解决你的问题,请参考以下文章
如何在 pandas 数据框中从 groupby 的结果生成所有值对
如何使用 Groupby 将 Pandas TA 应用于数据框
Python Pandas 如何将 groupby 操作结果分配回父数据框中的列?
Pandas将groupby操作的结果保存为原始数据框中的新列[关闭]