如题所述,我想对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/