Py学习  »  WY Hsu  »  全部回复
回复总数  1
7 年前
回复了 WY Hsu 创建的主题 » 如何用python绘制df.groupby.value_counts()结果?[复制品]

我只是遇到了同样的问题,所以我在这里提出了我的想法。

警告

当你处理的数据结构 Pandas ,你必须知道 返回类型 .

这里的另一个解决方案

就像前面提到的那样, 熊猫 提供API pd.Series.to_frame .

步骤1

你也可以把 pd.Series pd.DataFrame 只是做

df_val_counts = pd.DataFrame(value_counts) # wrap pd.Series to pd.DataFrame

那么,你有一个 数据文件 列名称为的 'a' ,您的第一列将成为索引

Input:  print(df_value_counts.index.values)
Output: [2 1]

Input:  print(df_value_counts.columns)
Output: Index(['a'], dtype='object')

步骤2

现在怎么办?

如果要在此处添加新的列名,作为 数据文件 ,您可以通过 reset_index() .

然后,通过api列表更改列名 df.coloumns

df_value_counts = df_value_counts.reset_index()
df_value_counts.columns = ['unique_values', 'counts']

那么,你得到了你需要的

Output:

       unique_values    counts
    0              2         3
    1              1         2

完整答案在这里

import pandas as pd

df = pd.DataFrame({'a':[1, 1, 2, 2, 2]})
value_counts = df['a'].value_counts(dropna=True, sort=True)

# solution here
df_val_counts = pd.DataFrame(value_counts)
df_value_counts = df_value_counts.reset_index()
df_value_counts.columns = ['unique_values', 'counts'] # change column names