计算数据框列中值的频率
给定一个包含分类值的列的数据框,您可能会遇到需要计算频率的情况每个唯一值出现的次数。
考虑以下内容dataframe:
category cat a cat b cat a
要检索不同值及其相应的频率,请按照以下步骤操作:
使用 value_counts()
按照建议@DSM,利用 value_counts() 来完成此任务任务:
In [37]: df = pd.DataFrame({'a':list('abssbab')}) df['a'].value_counts()
输出:
b 3 a 2 s 2 dtype: int64
使用 groupby() 和 count()
或者,你可以使用 groupby() 和count():
In [38]: df.groupby('a').count()
输出:
a a a 2 b 3 s 2 [3 rows x 1 columns]
其他选项:
欲了解更多信息,请参阅到 pandas 文档https://pandas.pydata.org。
将频率重新合并到数据框中
如果您希望将频率值添加回原始数据框,您可以利用transform()与count():
In [41]: df['freq'] = df.groupby('a')['a'].transform('count') df
输出:
a freq 0 a 2 1 b 3 2 s 2 3 s 2 4 b 3 5 a 2 6 b 3 [7 rows x 2 columns]
以上是如何计算 Pandas DataFrame 列中值的频率?的详细内容。更多信息请关注PHP中文网其他相关文章!