pandas group by count
时间: 2023-08-29 08:07:14 浏览: 203
可以使用 Pandas 的 `groupby` 函数和 `count` 函数来实现。
假设有一个名为 `df` 的 Pandas DataFrame,其中有一个名为 `category` 的列,我们想要按照 `category` 列对数据进行分组,并统计每个分组中的行数,可以使用以下代码:
```python
grouped = df.groupby('category').count()
```
这将返回一个新的 DataFrame,其中包含每个分组的行数。如果还需要重命名 DataFrame 中的列,可以使用 `rename` 函数:
```python
grouped = grouped.rename(columns={'column_name': 'new_name'})
```
其中 `column_name` 是原始列名,`new_name` 是新的列名。
相关问题
pandas groupby count
pandas 的 groupby 函数可以按照指定的列进行分组,并统计每组的数量。使用方法如下:
```
df.groupby('column_name').size()
```
或者
```
df.groupby('column_name').count()
```
其中,column_name 是需要分组的列。size() 函数返回每组的数量,count() 函数返回每列每组的非 NA 值的数量。
pandas group by 求count,然后 having
在 Pandas 中,可以使用 `groupby()` 方法进行分组操作,然后使用 `count()` 方法对每个组进行计数,最后使用 `filter()` 方法进行筛选。
例如,我们有一个数据集 `df`,包含两列 `A` 和 `B`,我们想要按照 `A` 列进行分组,然后过滤掉 `B` 列中计数小于 3 的组,可以按照以下方式实现:
```python
import pandas as pd
df = pd.DataFrame({'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'foo'],
'B': ['one', 'one', 'two', 'two', 'two', 'one', 'one', 'two']})
result = df.groupby('A').filter(lambda x: len(x) >= 3)
result = result.groupby('A').filter(lambda x: x['B'].count() >= 3)
```
首先,我们使用 `groupby()` 方法按照 `A` 列进行分组,然后使用 `filter()` 方法筛选出计数大于等于 3 的组。接着,我们再次使用 `groupby()` 方法按照 `A` 列进行分组,然后使用 `count()` 方法计算每组中 `B` 列的计数,最后再使用 `filter()` 方法筛选出计数大于等于 3 的组。
需要注意的是,`filter()` 方法返回的是一个新的 DataFrame,而不是原始的 DataFrame。如果需要修改原始的 DataFrame,可以使用 `inplace=True` 参数。同时,`filter()` 方法中的 lambda 函数可以根据具体的需求进行自定义。
阅读全文