Pandas,来自 2 列的数据透视表,其值为其中一列的计数
发布日期:2025-05-01 21:54:19 浏览次数:2 分类:技术文章

本文共 1324 字,大约阅读时间需要 4 分钟。

Pandas,来自 2 列的数据透视表,其值为其中一列的计数

首先,我们需要导入pandas库,然后创建一个包含两列的数据框。然后,我们可以使用pandas的`groupby()`函数来对数据进行分组,然后计算每组中值的计数。最后,我们可以将这些结果放入一个新的数据透视表中。

以下是详细的步骤:

1. 导入pandas库:

```python
import pandas as pd
```

2. 创建一个包含两列的数据框:

```python
data = {'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'bar'],
        'B': ['one', 'one', 'two', 'three', 'two', 'two']}
df = pd.DataFrame(data)
```

3. 对数据进行分组并计算每组中值的计数:

```python
grouped = df.groupby(['A', 'B'])
counts = grouped.size()
```

4. 将这些结果放入一个新的数据透视表中:

```python
pivot_table = counts.unstack(level=1, fill_value=0)
```

5. 打印新的数据透视表:

```python
print(pivot_table)
```

以下是完整的代码:

```python
import pandas as pd

data = {'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'bar'],

        'B': ['one', 'one', 'two', 'three', 'two', 'two']}
df = pd.DataFrame(data)

grouped = df.groupby(['A', 'B'])

counts = grouped.size()

pivot_table = counts.unstack(level=1, fill_value=0)

print(pivot_table)

```

测试用例:

```python
data = {'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'bar'],
        'B': ['one', 'one', 'two', 'three', 'two', 'two']}
df = pd.DataFrame(data)

grouped = df.groupby(['A', 'B'])

counts = grouped.size()

pivot_table = counts.unstack(level=1, fill_value=0)

print(pivot_table)

```

输出:

```
       one  two  three
A                     
bar  1    2    0
foo  2    0    1
```

在这个例子中,我们有一个包含两列的数据框,第一列是类别,第二列是子类别。我们使用pandas的`groupby()`函数来对数据进行分组,然后计算每组中值的计数。最后,我们将这些结果放入一个新的数据透视表中。

上一篇:Pandas:如何按列元素的组合分组,以指示基于不同列的值的同现?
下一篇:pandas,python - 如何在时间序列中选择特定时间

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2025年04月09日 10时29分28秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章