首页 > 解决方案 > 如何在 pandas DataFrame 中显示元素的频率?

问题描述

我有一个包含以下列(具有现有数字索引)的 pandas DataFrame:

    points | variety
    ----------------
1       97 | Chardonnay
17      67 | Cabernet Sauvignon
12      70 | Cabernet Sauvignon
8       97 | Chardonnay

我想将其转换为一个新的 DataFrame:

例如从上面的例子:

    Chardonnay | Cabernet Sauvignon
    -------------------------------
97           2 | 0
67           0 | 1
70           0 | 1

请注意,原始索引与输出无关。这是一个显示更完整示例的图像:Pandas DataFrame Snapshot

标签: pythonpandasdataframepandas-groupby

解决方案


您可以Pandas.crosstab为此使用:

pd.crosstab(index=df.points, columns=df.variety)

[出去]

variety  Cabernet Sauvignon  Chardonnay
points                                 
67                        1           0
70                        1           0
97                        0           2

推荐阅读