【发布时间】:2018-05-09 18:30:27
【问题描述】:
我来自 R,不了解 pandas 中的默认 groupby 行为。我创建了一个数据框并按“id”列分组,如下所示:
d = {'id': [1, 2, 3, 4, 2, 2, 4], 'color': ["r","r","b","b","g","g","r"], 'size': [1,2,1,2,1,3,4]}
df = DataFrame(data=d)
freq = df.groupby('id').count()
当我检查结果数据帧的标题时,所有原始列都在那里,而不仅仅是“id”和“freq”(或“id”和“count”)。
list(freq)
Out[117]: ['color', 'size']
当我显示结果数据框时,计数已替换计数中未使用的列的值:
freq
Out[114]:
color size
id
1 1 1
2 3 3
3 1 1
4 2 2
我打算使用 groupby,然后按频率列进行过滤。我是否需要删除未使用的列并手动添加频率列?通常的做法是什么?
【问题讨论】:
-
When I check the header of the resulting dataframe你没有这样做,因为你在做list(df)而不是list(freq)。list(freq)确实给了['color', 'size'] -
若要仅获取一列的频率,请使用
value_counts()而不是 groupby。 -
将代码修复为列表(频率)。
标签: pandas pandas-groupby