【问题标题】:Equivalent of pandas.Series.value_counts for pandas.DataFrame [duplicate]相当于 pandas.DataFrame 的 pandas.Series.value_counts [重复]
【发布时间】:2019-07-12 06:16:05
【问题描述】:

我想计算数据元组在 pandas DataFrame 中出现的次数。例如,假设我的数据如下所示:

    a  b
0   0  0
1   0  0
2   1  0
3   1  1
4   1  1

我想得到这样的“每行出现的次数”输出:

(0,0)    2
(1,0)    1
(1,1)    2
dtype: int64

但是,我知道如何做的最接近的事情是做一些算术,将两列合并成一个系列,然后在系列上调用 value_counts

>>> (df['a'] * 10 + df['b']).value_counts()
 0     2
10     1
11     2
dtype: int64

我不想手动合并列来获得这些计数。但是DataFrame好像没有value_counts的方法:

>>> df.value_counts()
AttributeError: 'DataFrame' object has no attribute 'value_counts'

有没有一种简单的方法可以从数据框中获取行数信息?

【问题讨论】:

标签: python pandas


【解决方案1】:

您可以通过.apply(tuple, 1) 将列合并为一个元组列,然后计算:

>>> df.apply(tuple, 1).value_counts()

(0, 0)    2
(1, 0)    1
(1, 1)    2
dtype: int64

【讨论】:

    猜你喜欢
    • 2012-06-22
    • 1970-01-01
    • 2018-09-07
    • 2021-07-25
    • 2015-05-16
    • 2011-08-25
    • 2020-02-19
    • 1970-01-01
    相关资源
    最近更新 更多