Viv*_*Viv 7 python profiling pandas pandas-profiling
数据并不完全干净,但在使用熊猫时没有问题。pandas 库为 EDA 提供了许多非常有用的函数。
但是,当我对大数据(即 10 亿条记录和 10 列)使用分析时,从数据库表中读取它时,它没有完成并且我的笔记本电脑内存不足,csv 中的数据大小约为 6 GB,我的 RAM 为 14 GB 我的空闲使用量大约是 3 - 4 GB。
df = pd.read_sql_query("select * from table", conn_params)
profile = pandas.profiling.ProfileReport(df)
profile.to_file(outputfile="myoutput.html")
Run Code Online (Sandbox Code Playgroud)
我也尝试过使用check_recoded = False
选项。但这对完全分析没有帮助。有什么办法可以对数据进行分块读取,最终生成一个整体的汇总报告?或任何其他方法将此函数用于大型数据集。
v2.4
引入了禁用昂贵计算(例如相关性和动态分箱)的最小模式:
from pandas_profiling import ProfileReport
profile = ProfileReport(df, minimal=True)
profile.to_file(output_file="output.html")
Run Code Online (Sandbox Code Playgroud)
小智 5
pandas-profiling=1.4
禁用相关性计算(从而大大减少计算)的语法在当前(测试版)版本之间发生了很大变化,pandas-profiling=2.0
如下所示:
profile = df.profile_report(correlations={
"pearson": False,
"spearman": False,
"kendall": False,
"phi_k": False,
"cramers": False,
"recoded":False,}
)
Run Code Online (Sandbox Code Playgroud)
此外,您可以通过禁用绘制直方图的箱计算来减少执行的计算。
profile = df.profile_report(plot={'histogram': {'bins': None}}
Run Code Online (Sandbox Code Playgroud)
您是否尝试使用以下选项,因为在使用 pandas 分析对大型自由文本字段进行相关性分析时可能会导致此问题?
df = pd.read_sql_query("select * from table", conn_params)
profile = pandas.profiling.ProfileReport(df, , check_correlation = False)
Run Code Online (Sandbox Code Playgroud)
请参阅以下 github 链接了解更多详细信息: https://github.com/pandas-profiling/pandas-profiling/issues/84
归档时间: |
|
查看次数: |
9265 次 |
最近记录: |