python - pandas 分类变量汇总
问题描述
如标题所述,我想对 中的分类变量进行一些总结分析pandas
,但搜索了一段时间没有找到令人满意的解决方案。所以我开发了下面的代码作为一种自我回答问题,希望有人能帮助改进。
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 DataFramedescribe()
方法。
describe()
默认情况下仅包括数字数据。要包含分类变量,您必须使用include
参数。
using'object'
仅返回非数值数据
test_df.describe(include='object')
using返回统计数据不适合数据类型'all'
的所有列的摘要NaN
test_df.describe(include='all')
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.describe.html
推荐阅读
- python - 像浏览器一样的 Python 请求?
- android - 如何修复错误类型'String'不是'index'的'int'类型的子类型?
- swift - 为什么我必须使用可选的“?” 在这段代码中?
- typescript - Mapbox using localGeocoderOnly: true 没有它就不起作用
- json - REST API 以 JSON 格式返回的日期比 Db 中存储的日期晚 8 小时
- excel - 没有互操作的 Excel 自动化
- apache-camel - 当交换可能包含或不包含正文中的可迭代对象时,使用 split().body() 是否安全?
- python - 如何显示发生错误的行?
- intellij-idea - WebStorm - 如何更改活动栏的主题
- java - 如何在没有覆盖 onclick 方法的情况下检查按钮是否被点击?