gpt4 book ai didi

python - 如何在 Pandas DataFrame 中一次获取多列的值计数?

转载 作者:IT老高 更新时间:2023-10-28 21:44:02 33 4
gpt4 key购买 nike

给定一个 Pandas DataFrame,它有多个具有分类值(0 或 1)的列,是否可以方便地同时获取每列的 value_counts?

例如,假设我生成一个DataFrame如下:

import numpy as np
import pandas as pd
np.random.seed(0)
df = pd.DataFrame(np.random.randint(0, 2, (10, 4)), columns=list('abcd'))

我可以得到这样的 DataFrame:

   a  b  c  d
0 0 1 1 0
1 1 1 1 1
2 1 1 1 0
3 0 1 0 0
4 0 0 0 1
5 0 1 1 0
6 0 1 1 1
7 1 0 1 0
8 1 0 1 1
9 0 1 1 0

如何方便地获取每列的值计数并方便地获取以下内容?

   a  b  c  d
0 6 3 2 6
1 4 7 8 4

我目前的解决方案是:

pieces = []
for col in df.columns:
tmp_series = df[col].value_counts()
tmp_series.name = col
pieces.append(tmp_series)
df_value_counts = pd.concat(pieces, axis=1)

但一定有更简单的方法,比如堆叠、旋转或分组?

最佳答案

只需调用 apply并通过 pd.Series.value_counts :

In [212]:
df = pd.DataFrame(np.random.randint(0, 2, (10, 4)), columns=list('abcd'))
df.apply(pd.Series.value_counts)
Out[212]:
a b c d
0 4 6 4 3
1 6 4 6 7

关于python - 如何在 Pandas DataFrame 中一次获取多列的值计数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32589829/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com