用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/vamseeachanta/workspace-hub --skill ydata-profiling-3-missing-value-analysis命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
基于 SOC 职业分类
正在显示 SKILL.md
| name | ydata-profiling-3-missing-value-analysis |
| description | Sub-skill of ydata-profiling: 3. Missing Value Analysis (+1). |
| version | 1.0.0 |
| category | data-analysis |
| type | reference |
| scripts_exempt | true |
Detecting Missing Patterns:
from ydata_profiling import ProfileReport
import pandas as pd
import numpy as np
# Create dataset with various missing patterns
np.random.seed(42)
n = 5000
df = pd.DataFrame({
"complete": np.random.randn(n), # No missing
"random_missing": np.where(
np.random.random(n) < 0.1,
np.nan,
np.random.randn(n)
),
"conditional_missing": np.where(
np.random.randn(n) > 1.5,
np.nan,
np.random.randn(n)
),
"block_missing": np.concatenate([
np.random.randn(4000),
np.full(1000, np.nan)
]),
"highly_missing": np.where(
np.random.random(n) < 0.7,
np.nan,
np.random.randn(n)
)
})
# Profile with missing value analysis
profile = ProfileReport(
df,
title="Missing Value Analysis",
missing_diagrams={
"bar": True,
"matrix": True,
"heatmap": True
}
)
profile.to_file("missing_analysis.html")
# Programmatic access to missing info
description = profile.get_description()
print("\nMissing Value Summary:")
for var_name, var_data in description.variables.items():
missing_count = var_data.get("n_missing", 0)
missing_pct = var_data.get("p_missing", 0) * 100
print(f" {var_name}: {missing_count} ({missing_pct:.1f}%)")
Missing Value Configuration:
from ydata_profiling import ProfileReport
import pandas as pd
df = pd.read_csv("data_with_missing.csv")
# Detailed missing value analysis
profile = ProfileReport(
df,
title="Missing Value Deep Dive",
missing_diagrams={
"bar": True, # Bar chart of missing values per variable
"matrix": True, # Nullity matrix (pattern visualization)
"heatmap": True # Nullity correlation heatmap
},
# Treat certain values as missing
vars={
"num": {
"low_categorical_threshold": 0
}
}
)
profile.to_file("missing_deep_dive.html")
Multiple Correlation Methods:
from ydata_profiling import ProfileReport
import pandas as pd
import numpy as np
# Create correlated dataset
np.random.seed(42)
n = 2000
x1 = np.random.randn(n)
x2 = np.random.randn(n)
df = pd.DataFrame({
"x1": x1,
"x2": x2,
"y_strong": x1 * 2 + np.random.randn(n) * 0.5, # Strong correlation
"y_moderate": x1 + np.random.randn(n) * 2, # Moderate correlation
"y_weak": x1 * 0.5 + np.random.randn(n) * 3, # Weak correlation
"y_negative": -x1 + np.random.randn(n) * 0.5, # Negative correlation
"y_nonlinear": x1 ** 2 + np.random.randn(n), # Non-linear relationship
"y_independent": np.random.randn(n), # No correlation
"category": np.random.choice(["A", "B", "C"], n) # Categorical
})
# Profile with all correlation methods
profile = ProfileReport(
df,
title="Correlation Analysis",
correlations={
"pearson": {"calculate": True, "warn_high_correlations": 0.9},
"spearman": {"calculate": True, "warn_high_correlations": },
: {: , : },
: {: , : },
: {: , : }
}
)
profile.to_file()
Correlation Thresholds:
from ydata_profiling import ProfileReport
import pandas as pd
df = pd.read_csv("features.csv")
# Custom correlation thresholds
profile = ProfileReport(
df,
title="Feature Correlation Report",
correlations={
"pearson": {
"calculate": True,
"warn_high_correlations": 0.8, # Warn above this
"threshold": 0.3 # Minimum to display
},
"spearman": {
"calculate": True,
"warn_high_correlations": 0.8
}
}
)
profile.to_file("feature_correlations.html")