Common issues and solutions for InsightfulPy v0.2.0.
- Installation Issues
- Import Errors
- Data Type Issues
- Empty or Missing Data
- Visualization Issues
- Batch Function Issues
- Performance Issues
- Environment Issues
- Function-Specific Issues
- Getting Help
- See Also
Problem: Package installation fails due to dependency conflicts.
Solution:
# Create clean virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install with specific versions
pip install --upgrade pip
pip install insightfulpyProblem: ImportError: No module named 'pandas' or similar.
Solution:
pip install insightfulpyIf issues persist, see Installation in the User Guide.
Problem: Package requires Python 3.8 or higher.
Solution:
# Check Python version
python --version
# Upgrade Python or use compatible version
python3.8 -m pip install insightfulpyProblem: ModuleNotFoundError: No module named 'insightfulpy'
Solution:
# Verify installation
pip list | grep insightfulpy
# Reinstall if missing
pip install --upgrade insightfulpy
# For development mode
pip install -e .Problem: AttributeError: module 'insightfulpy' has no attribute 'function_name'
Solution:
# Correct import pattern
import insightfulpy as ipy
# Use function
ipy.num_summary(df)
# Check available functions
ipy.list_all()Problem: No numerical columns found.
Solution:
# Check column types
print(df.dtypes)
# Convert to numeric
df['column'] = pd.to_numeric(df['column'], errors='coerce')Problem: No categorical columns found.
Solution:
# Convert to categorical
df['column'] = df['column'].astype('category')Problem: Columns contain multiple data types.
Solution:
ipy.detect_mixed_data_types(df) # Detect mixed types
df['column'] = df['column'].astype(str) # Fix by forcing typeProblem: No numerical or categorical columns found.
Cause: DataFrame missing required column types for visualization with num_vs_cat_box_violin_pair_batch().
Solution:
# Verify DataFrame structure
print(df.dtypes)
print(df.head())
# Ensure mixed column types exist
numerical_cols = df.select_dtypes(include=['number']).columns
categorical_cols = df.select_dtypes(include=['object', 'category']).columns
print(f"Numerical: {list(numerical_cols)}")
print(f"Categorical: {list(categorical_cols)}")Problem: Functions return empty DataFrame.
Solution:
print(f"Shape: {df.shape}")
print(df.head())Problem: Attribute 'column_name' not found.
Solution:
print(df.columns.tolist()) # Check available columns
ipy.columns_info('Dataset', df) # Or get detailed infoProblem: Visualization functions run without error but no plots appear.
Solution:
import matplotlib.pyplot as plt
ipy.kde_batches(df, batch_num=1)
plt.show() # In scripts, explicitly show plotsSee Environment Compatibility for details.
Problem: Labels overlap or plots are too small.
Solution:
from insightfulpy import constants
constants.DEFAULT_FIGURE_WIDTH = 16
constants.DEFAULT_FIGURE_HEIGHT = 8See Configuration for all customization options.
Problem: Functions print warnings about high cardinality columns.
Solution:
# Increase limit
ipy.cat_bar_batches(df, batch_num=1, high_cardinality_limit=50)
# Or exclude high cardinality columns
ipy.cat_vs_cat_pair_batch(df, pair_num=0, batch_num=1, show_high_cardinality=False)Problem: Batch X does not exist.
Solution:
batches = ipy.kde_batches(df) # Check available batches first
ipy.kde_batches(df, batch_num=batches['Batch Number'].max())Problem: Invalid pair_num.
Solution:
pairs = ipy.num_vs_num_scatterplot_pair_batch(df) # Check available pairs
print(pairs['Pair_Num'].unique())
ipy.num_vs_num_scatterplot_pair_batch(df, pair_num=0, batch_num=1)See Working with Batches for detailed workflow.
Problem: Functions take too long to execute.
Solution:
# Sample large datasets
sample_df = df.sample(n=10000, random_state=42)
ipy.num_summary(sample_df)
# Reduce batch size
from insightfulpy import constants
constants.MAX_SUBPLOTS_PER_BATCH = 6See User Guide - Environment Compatibility for solutions to IPython display and matplotlib backend issues.
Problem: Warnings about sample size for normality tests.
Solution:
Warnings are suppressed in core.py. For large datasets, use comp_num_analysis() which automatically uses appropriate tests.
Problem: grouped_summary drops columns with mixed types.
Solution:
df = df.infer_objects() # Fix mixed types before grouping
summary = ipy.grouped_summary(df, groupby='category')Problem: No common link columns found across the DataFrames.
Solution:
# Rename columns to match
df1 = df1.rename(columns={'old_name': 'new_name'})
ipy.linked_key(dataframes)Problem: detect_outliers returns empty DataFrame.
Solution:
from insightfulpy import constants
constants.IQR_OUTLIER_MULTIPLIER = 1.0 # More sensitive (default 1.5)
outliers = ipy.detect_outliers(df)See Configuration for details on constants.
import insightfulpy as ipy
ipy.help() # General help
ipy.list_all() # List all functions
help(ipy.num_summary) # Function-specific helpSee Quick Start in the User Guide for more examples.
pip show insightfulpyIf issues persist:
- Check GitHub issues: https://github.com/dhaneshbb/insightfulpy/issues
- Use Bug Report Template
- Include minimal reproducible example
- User Guide - Usage guide
- Configuration - Settings and constants
Version: 0.2.0 | Status: Beta | Python: 3.8-3.12
Copyright 2025 dhaneshbb | License: MIT | Homepage: https://github.com/dhaneshbb/insightfulpy