【发布时间】:2021-12-22 22:05:27
【问题描述】:
我正在使用 pandas 分析来生成一些具有 150 多个属性的数据帧的 HTML 报告。我想提取一些信息并将其排列在一个简单的表格中。具体来说,我需要每个变量“n_missing”中缺失数据的数量、不同的值及其对应的百分比“p_missing”。
我做过的事情,但我很难做到这一点:
df1 = pd.read_excel('df.xlsx')
profile = df1.profile_report(title="Dataset Profiling Report")
profile.to_file('dataset_report.html') #HTML report
profset = profile.description_set #Extracting the info from the profile object
print(profset.keys())
OUT[]: dict_keys(['analysis', 'table', 'variables', 'scatter', 'correlations', 'missing', 'messages', 'package', 'sample', 'duplicates'])
attributes = profset["variables"]
print(attributes.keys())
OUT: dict_keys(['Attribute 1', 'Attribute 2', 'Attribute 3', 'Attribute 4'...]) #All my columns or attributes.
我认为 profile.description_set 键的“缺失”键是那个键,但我明白了:
missing = profset["missing"]
print(missing.keys())
dict_keys(['bar', 'matrix', 'heatmap', 'dendrogram'])
而且这些似乎都不是正确的。
我一直在浏览 pandas 分析文档并在线搜索,但只找到了一个可能的示例,这使我找到了我之前编写的代码。
最终目标是导出到 excel 的表格,如下所示(忽略实际值):
Attributes n_Missing p_missing n_disctinct p_disctinct
Attribute X 23 0.23 2 0.5
Attribute Y 50 0.50 50 1.0
Attribute Z 0 0.00 100 1.0
...
【问题讨论】:
-
请发布一个最小的可重现示例。具体来说,编写一些类似
df1 = pd.DataFrame(some_list)的代码,这样我们就可以看到df1里面的内容。否则我们帮不了你。
标签: python pandas profiling pandas-profiling