首页 > 解决方案 > 如何使用熊猫一次计算多列的值

问题描述

我了解到,当我输入时df = pd.read_csv("file.csv"),我可以从 csv 文件中获取这些数据,如下所示:

    round        date  first  second  third  fourth  fifth  sixth  bonus
0      959  2021.04.17      1      14     15      24     40     41     35
1      958  2021.04.10      2       9     10      16     35     37      1
2      957  2021.04.03      4      15     24      35     36     40      1
3      956  2021.03.27     10      11     20      21     25     41     40
4      955  2021.03.20      4       9     23      26     29     33      8

我还了解到,我可以用它df["column_name"].value_counts()来计算值写入的频率。

例如df["first"].value_count(),然后它将显示“第一”列的计数值作为结果。喜欢

1     134
2     107
3      94 ...

但我想一次计算多列中的所有值。

如何一次计算多列的值?有人能告诉我使用哪种方法吗?

标签: pythonpandasdataframecsvjupyter-notebook

解决方案


start如果您想要从到结束的所有列中的所有当前值的矩阵,请value_counts按照@jezrael 的建议使用并通过列轴对它们求和:

>>> df.iloc[:, 2:].apply(pd.value_counts).fillna(0).astype(int).sum(axis=1)
1     3
2     1
4     2
8     1
9     2
10    2
11    1
14    1
15    2
16    1
20    1
21    1
23    1
24    2
25    1
26    1
29    1
33    1
35    3
36    1
37    1
40    3
41    2
dtype: int64

推荐阅读