python - 分类变量 pandas 总结

标签 python pandas

如题所述,我想对pandas中的分类变量做一些总结分析,但是找了一段时间也没有找到满意的方案。因此,我开发了以下代码作为一种 self 回答问题,希望 SO 上的某个人可以帮助改进。

test_df = pd.DataFrame({'x':['a', 'b','b','c'],
                        'y':[1, 0, 0, np.nan],
                        'z':['Jay', 'Jade', 'Jia', ''],
                        'u':[1, 2, 3, 3]})
def cat_var_describe(input_df, var_list):
    df = input_df.copy()
    # dataframe to store result
    res = pd.DataFrame({'var_name', 'values', 'count'})
    for var in var_list:
        temp_res = df[var].value_counts(dropna=False).rename_axis('unique_values').reset_index(name='counts')
        temp_res['var_name'] = var
        if var==var_list[0]:
            res = temp_res.copy()
        else:
            res = pd.concat([res, temp_res], axis=0)
    res = res[['var_name', 'unique_values', 'counts']]
    return res

cat_des_test = cat_var_describe(test_df, ['x','y','z','u'])
cat_des_test

我们将不胜感激任何有用的建议。

最佳答案

您可以使用 pandas DataFrame describe() 方法。 describe() 默认只包含数字数据。 要包含分类变量,您必须使用 include 参数。

使用 'object' 只返回非数字数据

 test_df.describe(include='object')

使用 'all' 返回所有具有 NaN 的列的摘要,其中统计数据不适合数据类型

 test_df.describe(include='all')

https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.describe.html

关于python - 分类变量 pandas 总结,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64223060/

相关文章:

python - 提高串式过滤器的效率

python - 让 TensorFlow 做一些琐碎的事情时遇到困难

python - 根据配对条件过滤 Pandas

python - 在 Pandas 中重新索引和填充 NaN 值

python - 当 Pandas 图中的重叠条具有不同的宽度时,它们并不完全居中

python - 绘制 100% 堆积图问题

python - 如何覆盖文档查看器图标以在 Plone 中全屏查看?

Python Pandas : How to broadcast an operation using apply without writing a secondary function

python - 如何使用 python pandas 计算总天数、小时数和分钟数?

python - Pandas 中的矢量化计算