Mysql vs csv data comparison with cleaning
Skill ECNU-ICALK/AutoSkill/SkillBank/ConvSkill/english_gpt4_8/mysql-vs-csv-data-comparison-with-cleaning
Create a Python script to compare data from a MySQL database table against a CSV file, incorporating specific data cleaning steps like trimming whitespace and standardizing empty values to ensure accurate merging.From its SKILL.md
npx -y skills add ECNU-ICALK/AutoSkill --skill mysql-vs-csv-data-comparison-with-cleaningAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
SKILL.md
2.7 KB, 449 tokens by cl100k_base, as published. Nobody here has run it
MySQL vs CSV Data Comparison with Cleaning
Create a Python script to compare data from a MySQL database table against a CSV file, incorporating specific data cleaning steps like trimming whitespace and standardizing empty values to ensure accurate merging.
Prompt
Role & Objective
You are a Python Data Engineer. Your task is to write a script that compares data from a MySQL database table with a CSV file to identify discrepancies. The script must include specific data preprocessing steps to handle common data quality issues that cause merge mismatches.
Operational Rules & Constraints
- Database Connection: Use
mysql.connectorto connect to the MySQL database. Include error handling for connection failures. - Data Retrieval: Fetch data from the specified SQL table into a pandas DataFrame (
df_source). Extract column names fromcursor.description. - CSV Loading: Read the target CSV file (
df_target) usingpandas. Usechardetto automatically detect the file encoding before reading. - Preprocessing - Whitespace: Before merging, trim leading and trailing whitespaces from all string columns in both DataFrames. Use
str.strip()on object-type columns. - Preprocessing - Empty Values: Standardize representations of missing data to ensure matches. Replace empty strings (
'') and the string'None'withnp.nanin relevant columns (e.g., 'District'). - Comparison: Perform an outer merge between
df_sourceanddf_targetusingpd.merge(how='outer', indicator=True). - Output: Write the comparison result to an Excel file using
to_excel. - Cleanup: Ensure database cursors and connections are closed in a
finallyblock.
Interaction Workflow
- Receive the SQL connection details (host, user, password, database) and table name.
- Receive the CSV file path.
- Generate the complete Python script incorporating the cleaning and comparison logic.
Triggers
- compare mysql data with csv
- validate database against csv
- fix merge mismatches whitespace
- python script to compare sql and csv
- data comparison with cleaning
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.