[{"data":1,"prerenderedAt":349},["ShallowReactive",2],{"topic:data-cleaning":3},[4,13,21,27,32,38,44,49,54,59,65,71,76,81,87,92,98,104,109,114,119,124,129,134,140,145,150,155,160,165,170,175,181,186,191,196,201,206,211,217,222,227,232,237,242,247,254,259,264,269,274,279,284,289,295,301,307,312,317,322,327,333,338,343],{"path":5,"title":6,"description":7,"type":8,"topics":9,"kind":12},"\u002Fadvanced-data-transformation-and-cleaning","Advanced Data Transformation and Cleaning for Excel Automation","Build production-grade Python pipelines that clean, validate, merge, and format Excel data with pandas and openpyxl — staged, testable, and reproducible.","overview",[10,11],"data-cleaning","pandas",null,{"path":14,"title":15,"description":16,"type":17,"topics":18,"kind":12},"\u002Fadvanced-data-transformation-and-cleaning\u002Fapplying-conditional-formatting-with-openpyxl\u002Fhighlight-duplicate-values-in-excel-with-openpyxl","Highlight Duplicate Values in Excel with openpyxl","Flag repeated values in a worksheet: the built-in duplicateValues rule, formula rules for duplicates across columns, whole-row highlighting, and a pandas alternative.","how-to",[19,10,20],"conditional-formatting","openpyxl",{"path":22,"title":23,"description":24,"type":25,"topics":26,"kind":12},"\u002Fadvanced-data-transformation-and-cleaning\u002Fcleaning-excel-data-with-pandas","Cleaning Excel Data With Pandas: A Production Workflow","Turn messy Excel exports into reliable reporting inputs with pandas: load as text, normalize headers and types, drop noise, deduplicate, validate, and export.","guide",[10,11],{"path":28,"title":29,"description":30,"type":17,"topics":31,"kind":12},"\u002Fadvanced-data-transformation-and-cleaning\u002Fcleaning-excel-data-with-pandas\u002Fclean-mixed-currency-amounts-into-amount-and-currency-columns","Clean Mixed-Currency Amounts into Amount and Currency Columns","Turn an Excel column of amounts typed with their currency — \"€1.234,50\", \"USD 1,200\", \"1200 GBP\", \"£950\", \"CHF 1'250.00\", \"(45.00) EUR\" — into a numeric amount column and an ISO currency code column with pandas: map symbols and codes, resolve the ambiguous dollar sign, detect decimal commas, keep negative signs and parentheses, convert to one reporting currency, and list what could not be read.",[10,11],{"path":33,"title":34,"description":35,"type":17,"topics":36,"kind":12},"\u002Fadvanced-data-transformation-and-cleaning\u002Fcleaning-excel-data-with-pandas\u002Fcoalesce-several-excel-columns-into-one-with-pandas","Coalesce Several Excel Columns into One with pandas","Take the first non-empty value from several columns — Mobile, else Work phone, else Home phone — the way SQL's COALESCE or a chain of nested IFs in Excel does: bfill across columns, combine_first for two columns, treating blanks and placeholder text as missing, recording which column supplied each value, and flagging rows where the sources disagree.",[10,37,11],"missing-data",{"path":39,"title":40,"description":41,"type":17,"topics":42,"kind":12},"\u002Fadvanced-data-transformation-and-cleaning\u002Fcleaning-excel-data-with-pandas\u002Fconvert-currency-strings-to-numbers-with-pandas","Convert Currency Strings Like \"$1,234.56\" and \"(500)\" to Numbers with pandas","Amount columns exported as text — \"$1,234.56\", \"(1,200.00)\", \"-€50\", \"1.234,56 EUR\", \"750.00-\" or \"100.00 CR\" — cannot be summed. Parse every common currency format into a signed number and a separate currency code, report the values that do not parse, and write real numbers back to Excel.",[10,11,43],"number-formats",{"path":45,"title":46,"description":47,"type":17,"topics":48,"kind":12},"\u002Fadvanced-data-transformation-and-cleaning\u002Fcleaning-excel-data-with-pandas\u002Fconvert-excel-text-columns-to-numbers-with-pandas","Convert Excel Text Columns to Numbers with pandas","Numbers stored as text will not sum. Convert them in pandas — currency symbols, thousands separators, European decimals, parentheses negatives, and reporting what failed.",[10,11],{"path":50,"title":51,"description":52,"type":17,"topics":53,"kind":12},"\u002Fadvanced-data-transformation-and-cleaning\u002Fcleaning-excel-data-with-pandas\u002Fconvert-percentage-strings-to-numbers-with-pandas","Convert Percentage Strings Like \"12.5%\" to Numbers with pandas","A rate column that mixes typed text like \"12.5%\" with real percentage cells that pandas reads as 0.125 cannot be averaged. Convert every form — \"12.5%\", \"12,5 %\", \"-3%\", \"25 bp\", fractions and bare numbers — to one consistent fraction, flag the ambiguous values, and write them back with a percent format.",[10,11,43],{"path":55,"title":56,"description":57,"type":17,"topics":58,"kind":12},"\u002Fadvanced-data-transformation-and-cleaning\u002Fcleaning-excel-data-with-pandas\u002Fconvert-trailing-minus-and-cr-dr-amounts-with-pandas","Convert Trailing Minus and CR\u002FDR Amounts with pandas","Turn amounts exported by SAP, Oracle and bank systems into signed numbers: trailing minus signs like 1,234.56-, accounting brackets, CR and DR suffixes, a separate debit\u002Fcredit indicator column, European 1.234,56 formats, and a check that nothing was left as text.",[10,11],{"path":60,"title":61,"description":62,"type":17,"topics":63,"kind":12},"\u002Fadvanced-data-transformation-and-cleaning\u002Fcleaning-excel-data-with-pandas\u002Fdetect-outliers-in-excel-data-with-pandas","Detect Outliers in Excel Data with pandas","Find the invoice for 48,000 in a column of 400s, the negative quantity and the delivery that took 90 days. Compare IQR fences, z-scores and median-based robust scores on the same data, detect outliers within each group, add business rules, and flag rows in the workbook for review instead of deleting them.",[64,10,11],"data-validation",{"path":66,"title":67,"description":68,"type":17,"topics":69,"kind":12},"\u002Fadvanced-data-transformation-and-cleaning\u002Fcleaning-excel-data-with-pandas\u002Fextract-numbers-and-codes-from-text-with-pandas","Extract Numbers and Codes from Text with pandas","Pull order numbers, SKUs, quantities and amounts out of free-text cells like \"Re: PO-10442, 3 x SKU AB-1200 @ $12.50\". Use str.extract with named groups for one match per cell, extractall for many, fullmatch to validate codes, and a report of the rows where nothing matched.",[10,11,70],"formula-equivalents",{"path":72,"title":73,"description":74,"type":17,"topics":75,"kind":12},"\u002Fadvanced-data-transformation-and-cleaning\u002Fcleaning-excel-data-with-pandas\u002Ffilter-excel-rows-by-condition-with-pandas","Filter Excel Rows by Condition with pandas","Keep only the rows you need from a sheet: boolean masks, combining conditions with & | ~ and the brackets they need, isin, between and date ranges, text matching that does not crash on blanks, query strings, filters defined in a config file, and deleting rows from a formatted workbook in place with openpyxl.",[10,11],{"path":77,"title":78,"description":79,"type":17,"topics":80,"kind":12},"\u002Fadvanced-data-transformation-and-cleaning\u002Fcleaning-excel-data-with-pandas\u002Ffind-near-duplicate-names-within-one-excel-column","Find Near-Duplicate Names Within One Excel Column","Customer and supplier lists collect variants of the same name — \"ACME Ltd\", \"Acme Limited\", \"A.C.M.E. Ltd.\" — that exact de-duplication misses. Normalise names, compare every pair with rapidfuzz, group matches into clusters, choose a canonical spelling, block by first letter to scale to tens of thousands of names, and write a review sheet so a person confirms each merge.",[10,64],{"path":82,"title":83,"description":84,"type":17,"topics":85,"kind":12},"\u002Fadvanced-data-transformation-and-cleaning\u002Fcleaning-excel-data-with-pandas\u002Ffix-garbled-characters-in-excel-data","Fix Garbled Characters Like \"CafÃ©\" and \"â€™\" in Excel Data","Text that shows \"MÃ¼ller\", \"â‚¬100\" or \"â€™\" was UTF-8 read as Windows-1252 somewhere upstream. Detect the affected cells, repair them with a one-line re-encode or with ftfy, avoid the repairs that damage correct text, recognise what cannot be recovered, and stop it happening again.",[10,86,11],"file-formats",{"path":88,"title":89,"description":90,"type":17,"topics":91,"kind":12},"\u002Fadvanced-data-transformation-and-cleaning\u002Fcleaning-excel-data-with-pandas\u002Ffix-the-capitalisation-of-names-with-exceptions-in-pandas","Fix the Capitalisation of Names with Exceptions in pandas","Turn SHOUTED and lower-case names in an Excel list into proper names without the mistakes str.title makes: O'Brien instead of O'brien, McDonald, hyphenated surnames, particles such as van and de, generational suffixes like III, company suffixes and acronyms such as LLC and UK, leaving already mixed-case names alone, and a review list of everything that changed.",[10,11],{"path":93,"title":94,"description":95,"type":17,"topics":96,"kind":12},"\u002Fadvanced-data-transformation-and-cleaning\u002Fcleaning-excel-data-with-pandas\u002Fkeep-the-latest-record-per-key-with-pandas","Keep the Latest Record per Key When Deduplicating with pandas","A customer export lists the same customer several times as their details changed. Keep only the most recent row per customer with sort_values and drop_duplicates, break ties on equal timestamps, handle dates stored as text and missing dates, and avoid groupby().last(), which quietly mixes values from different rows.",[10,11,97],"dates-and-times",{"path":99,"title":100,"description":101,"type":17,"topics":102,"kind":12},"\u002Fadvanced-data-transformation-and-cleaning\u002Fcleaning-excel-data-with-pandas\u002Fmap-free-text-job-titles-to-standard-categories","Map Free-Text Job Titles to Standard Categories","Turn hundreds of free-text job titles from an HR export or a contact list into a handful of standard job families and seniority levels with pandas: normalise the text, expand abbreviations, apply an ordered keyword rule table kept in Excel, fall back to fuzzy matching against known titles, separate seniority from function, and report every title that still needs a human decision.",[10,103],"joins-and-lookups",{"path":105,"title":106,"description":107,"type":17,"topics":108,"kind":12},"\u002Fadvanced-data-transformation-and-cleaning\u002Fcleaning-excel-data-with-pandas\u002Fnormalise-postcodes-and-zip-codes-with-pandas","Normalise Postcodes and ZIP Codes with pandas","Clean the postcode column of an international address list from Excel: restore the leading zeros Excel stripped from US ZIP codes and other numeric postcodes, format UK postcodes with the single space in the right place, handle ZIP+4, Dutch and Canadian formats, validate each value against its country's pattern, and list the ones that need a human.",[10,11],{"path":110,"title":111,"description":112,"type":17,"topics":113,"kind":12},"\u002Fadvanced-data-transformation-and-cleaning\u002Fcleaning-excel-data-with-pandas\u002Fpandas-drop-duplicates-from-excel-column","Pandas: Drop Duplicates From an Excel Column","Remove duplicate rows by a single Excel column with pandas drop_duplicates and the subset parameter — including keep options, NaN behavior, and pre-cleaning.",[10,11],{"path":115,"title":116,"description":117,"type":17,"topics":118,"kind":12},"\u002Fadvanced-data-transformation-and-cleaning\u002Fcleaning-excel-data-with-pandas\u002Fremove-accents-and-normalise-unicode-in-excel-text","Remove Accents and Normalise Unicode in Excel Text","Make text from different sources compare equal when it looks equal: Unicode normal forms NFC and NFKC for composed and decomposed accents, full-width characters, ligatures and non-breaking spaces, removing zero-width characters, casefold instead of lower, stripping accents for matching keys while keeping the original for display, and converting smart quotes and dashes.",[10],{"path":120,"title":121,"description":122,"type":17,"topics":123,"kind":12},"\u002Fadvanced-data-transformation-and-cleaning\u002Fcleaning-excel-data-with-pandas\u002Fremove-blank-rows-from-excel-with-pandas","Remove Blank Rows From Excel With Pandas","Strip blank rows from an Excel file with pandas: dropna(how='all'), subset and thresh, whitespace-only cells, index resets, and writing the cleaned file back.",[10,11],{"path":125,"title":126,"description":127,"type":17,"topics":128,"kind":12},"\u002Fadvanced-data-transformation-and-cleaning\u002Fcleaning-excel-data-with-pandas\u002Fremove-duplicate-words-and-extra-punctuation-from-text","Remove Duplicate Words and Extra Punctuation from Text","Tidy free-text columns from Excel with pandas: remove accidentally repeated words such as \"the the\" while keeping genuine repeats like \"Bora Bora\", collapse runs of punctuation, fix spaces before commas and full stops, normalise curly quotes and dashes, strip leading and trailing junk, and keep a log of exactly which cells changed and how.",[10,11],{"path":130,"title":131,"description":132,"type":17,"topics":133,"kind":12},"\u002Fadvanced-data-transformation-and-cleaning\u002Fcleaning-excel-data-with-pandas\u002Fremove-non-printable-characters-from-excel-data","Remove Non-Printable Characters from Excel Data with Python","Find and remove the characters you cannot see in Excel text — carriage returns, tabs, bell and other control codes, soft hyphens, zero-width marks and leftover _x000D_ escapes — using Unicode categories, without damaging line breaks or emoji you want to keep.",[10,11],{"path":135,"title":136,"description":137,"type":17,"topics":138,"kind":12},"\u002Fadvanced-data-transformation-and-cleaning\u002Fcleaning-excel-data-with-pandas\u002Freorder-columns-to-match-a-template-layout-with-pandas","Reorder Columns to Match a Template Layout with pandas","Make every incoming file match the column layout a template, upload form or downstream system expects: read the required order from the template itself, map renamed headers, reindex so columns land in the right place, decide what happens to missing and extra columns, check the result, and write the data under the template's own header row without disturbing its formatting.",[10,139],"writing-excel",{"path":141,"title":142,"description":143,"type":17,"topics":144,"kind":12},"\u002Fadvanced-data-transformation-and-cleaning\u002Fcleaning-excel-data-with-pandas\u002Freplace-values-in-an-excel-column-with-pandas","Replace Values in an Excel Column with pandas","Recode values in an Excel column with pandas — replace versus map, mapping tables kept in a workbook, regex replacements, per-column rules, numeric bands with case_when, and a report of values that no rule covered.",[10,11],{"path":146,"title":147,"description":148,"type":17,"topics":149,"kind":12},"\u002Fadvanced-data-transformation-and-cleaning\u002Fcleaning-excel-data-with-pandas\u002Fsplit-a-column-into-multiple-columns-with-pandas","Split a Column into Multiple Columns with pandas","The pandas version of Excel's Text to Columns: split names, codes and addresses on a delimiter, cap the number of pieces, extract parts with a regex, and turn multi-value cells into rows.",[10,11],{"path":151,"title":152,"description":153,"type":17,"topics":154,"kind":12},"\u002Fadvanced-data-transformation-and-cleaning\u002Fcleaning-excel-data-with-pandas\u002Fsplit-an-address-column-into-street-city-and-postcode","Split an Address Column into Street, City and Postcode","Break single-cell addresses from an Excel export into street, city, postcode and country columns with pandas: handle line breaks typed with Alt+Enter and comma-separated addresses, find the postcode with a pattern for each country, take the city from around it, keep extra lines such as building names, and send addresses the rules cannot split to a review list instead of guessing.",[10,11],{"path":156,"title":157,"description":158,"type":17,"topics":159,"kind":12},"\u002Fadvanced-data-transformation-and-cleaning\u002Fcleaning-excel-data-with-pandas\u002Fsplit-delimited-cell-values-into-rows-with-pandas","Split Delimited Cell Values into Rows with pandas","Turn cells like \"Red; Blue; Green\" or \"INV-1, INV-2\" into one row per value with str.split and explode: clean up spaces and empty items, split two parallel columns together (and handle the \"matching element counts\" error when they disagree), keep a link to the original row, count and pivot the results, and join them back into one cell when needed.",[10,11],{"path":161,"title":162,"description":163,"type":17,"topics":164,"kind":12},"\u002Fadvanced-data-transformation-and-cleaning\u002Fcleaning-excel-data-with-pandas\u002Fsplit-full-names-into-first-and-last-names-with-pandas","Split Full Names into First and Last Names with pandas","A single \"Name\" column holds \"Ada Lovelace\", \"Lovelace, Ada\", \"Dr. Grace Hopper\", \"Ludwig van Beethoven\" and \"Smith Jr., John\". Split it into first and last names with rules for commas, titles, suffixes and surname particles, keep the original, and flag the names no rule should guess about.",[10,11,70],{"path":166,"title":167,"description":168,"type":17,"topics":169,"kind":12},"\u002Fadvanced-data-transformation-and-cleaning\u002Fcleaning-excel-data-with-pandas\u002Fstandardise-category-values-with-a-mapping-table","Standardise Category Values with a Mapping Table in pandas","Turn \"N. America\", \"north america \", \"NA\" and \"USA\" into one region name using a mapping table kept in Excel, where the people who own the categories can maintain it. Normalise keys, check the table for conflicts, report unmapped values with counts and suggestions, and append new ones for review.",[10,103,11],{"path":171,"title":172,"description":173,"type":17,"topics":174,"kind":12},"\u002Fadvanced-data-transformation-and-cleaning\u002Fcleaning-excel-data-with-pandas\u002Fstandardise-country-names-and-codes-with-python","Standardise Country Names and Codes with Python","Map a free-typed country column — \"Germany\", \"DE\", \"deutschland\", \"UK\", \"U.S.A.\", \"Holland\", \"Turkey\" — to ISO 3166 codes and one official name with pycountry: exact lookups by name and code, an override table for nicknames, native names and renamed countries, cautious use of fuzzy search, a report of ambiguous and unmatched values, and summaries that finally add up per country.",[10],{"path":176,"title":177,"description":178,"type":17,"topics":179,"kind":12},"\u002Fadvanced-data-transformation-and-cleaning\u002Fcleaning-excel-data-with-pandas\u002Fstandardise-excel-column-names-with-pandas","Standardise Excel Column Names with pandas","Turn messy Excel headers — stray spaces, line breaks, symbols, duplicates, blanks and dates as headers — into consistent snake_case names, map synonyms from different sources to one canonical schema, and check required columns before processing.",[10,180,11],"reading-excel",{"path":182,"title":183,"description":184,"type":17,"topics":185,"kind":12},"\u002Fadvanced-data-transformation-and-cleaning\u002Fcleaning-excel-data-with-pandas\u002Fstandardise-phone-numbers-in-excel-data-with-python","Standardise Phone Numbers in Excel Data with Python","Turn a column of phone numbers typed every possible way — spaces, brackets, (0), 00 prefixes, missing country codes, numbers mangled into floats by Excel — into one consistent format with pandas and the phonenumbers library: E.164 for systems, international or national format for people, validity and line-type checks, and a review list of numbers that cannot be trusted.",[10,11],{"path":187,"title":188,"description":189,"type":17,"topics":190,"kind":12},"\u002Fadvanced-data-transformation-and-cleaning\u002Fcleaning-excel-data-with-pandas\u002Fstrip-whitespace-and-normalise-text-columns-with-pandas","Strip Whitespace and Normalise Text Columns with pandas","Trailing spaces break joins and group-bys silently. Clean Excel text columns in pandas — strip, collapse inner whitespace, non-breaking spaces, case folding and accents.",[10,11],{"path":192,"title":193,"description":194,"type":17,"topics":195,"kind":12},"\u002Fadvanced-data-transformation-and-cleaning\u002Fexcel-formula-equivalents-in-pandas\u002Fexact-and-case-sensitive-comparisons-in-pandas","EXACT and Case-Sensitive Comparisons in pandas","Excel compares text without regard to case — \"AB-100\"=\"ab-100\" is TRUE, and COUNTIF, MATCH, XLOOKUP and UNIQUE all ignore case — while pandas compares exactly. Reproduce both behaviours: EXACT as plain equality, Excel-style matching with casefold, COUNTIF with wildcards, first-match lookups and distinct counts, and see why a migrated report counts six products where the spreadsheet counted three.",[70,10],{"path":197,"title":198,"description":199,"type":17,"topics":200,"kind":12},"\u002Fadvanced-data-transformation-and-cleaning\u002Fexcel-formula-equivalents-in-pandas\u002Ffind-search-and-substitute-equivalents-in-pandas","FIND, SEARCH and SUBSTITUTE Equivalents in pandas","Translate Excel's FIND, SEARCH, SUBSTITUTE and REPLACE to pandas string methods: positions that start at 0 instead of 1, -1 instead of #VALUE!, case-insensitive search, Excel wildcards, replacing only the second occurrence, and the MID(FIND()) pattern for text between delimiters.",[70,10,11],{"path":202,"title":203,"description":204,"type":17,"topics":205,"kind":12},"\u002Fadvanced-data-transformation-and-cleaning\u002Fexcel-formula-equivalents-in-pandas\u002Fregexextract-regextest-and-regexreplace-equivalents-in-pandas","REGEXTEST, REGEXEXTRACT and REGEXREPLACE Equivalents in pandas","Excel's new regular-expression functions map neatly onto pandas' string methods: REGEXTEST to str.contains, REGEXEXTRACT's three return modes to str.extract, str.findall and capture groups, and REGEXREPLACE to str.replace — with the differences that bite: $1 versus \\1 in replacements, the case-sensitivity argument, replacing only the nth match, #N\u002FA versus NaN, and patterns that behave differently in Python.",[70,10],{"path":207,"title":208,"description":209,"type":17,"topics":210,"kind":12},"\u002Fadvanced-data-transformation-and-cleaning\u002Fexcel-formula-equivalents-in-pandas\u002Funique-sort-and-filter-equivalents-in-pandas","UNIQUE, SORT and FILTER Equivalents in pandas","Reproduce Excel's dynamic array functions in pandas: UNIQUE with drop_duplicates, \"values that appear exactly once\", SORT and SORTBY with sort_values, FILTER with boolean masks and an if_empty fallback, and the chained SORT(UNIQUE(FILTER())) pattern — plus the case-sensitive sort that puts \"Banana\" before \"apple\".",[70,11,10],{"path":212,"title":213,"description":214,"type":17,"topics":215,"kind":12},"\u002Fadvanced-data-transformation-and-cleaning\u002Fextracting-data-from-messy-excel-sheets\u002Fparse-numbers-with-units-in-excel-cells","Parse Numbers with Units in Excel Cells","Turn cells like \"12 kg\", \"1,200 g\", \"2.5t\", \"500 ml\", \"3.5k\" and \"1,5 kg\" into numbers in one unit with pandas: a regular expression that splits value from unit, a conversion table for the units you expect, suffixes such as k and M, decimal commas, the pint library for broader unit support, and a report of every value that could not be parsed.",[216,10],"messy-sheets",{"path":218,"title":219,"description":220,"type":17,"topics":221,"kind":12},"\u002Fadvanced-data-transformation-and-cleaning\u002Fextracting-data-from-messy-excel-sheets\u002Fparse-records-that-span-multiple-rows-in-excel","Parse Records That Span Multiple Rows in Excel with pandas","Bank statements wrap long descriptions onto extra rows, and contact exports stack one field per row. Number each record from the row that starts it, join the continuation lines, pivot stacked fields into columns, and catch orphan lines and repeated fields instead of silently mixing records.",[216,10,11],{"path":223,"title":224,"description":225,"type":17,"topics":226,"kind":12},"\u002Fadvanced-data-transformation-and-cleaning\u002Fextracting-data-from-messy-excel-sheets\u002Fremove-subtotal-and-total-rows-from-an-excel-export","Remove Subtotal and Total Rows from an Excel Export","Subtotal and grand-total rows double every sum you compute. Find them by label, by missing detail fields or by SUBTOTAL formulas, remove them, and use the totals to check your own numbers.",[216,10,11],{"path":228,"title":229,"description":230,"type":17,"topics":231,"kind":12},"\u002Fadvanced-data-transformation-and-cleaning\u002Fhandling-missing-data-in-excel-reports\u002Freplace-placeholder-text-with-nan-in-pandas","Replace Placeholder Text with NaN in pandas","Excel sheets mark missing data with \"n\u002Fa\", \"-\", \"TBC\", -999 or 31\u002F12\u002F9999. Turn those placeholders into real missing values with read_excel's na_values, per-column rules and sentinel masks — without losing genuine values such as the country code NA.",[37,10,11],{"path":233,"title":234,"description":235,"type":17,"topics":236,"kind":12},"\u002Fadvanced-data-transformation-and-cleaning\u002Fmerging-and-joining-excel-dataframes\u002Ffuzzy-match-names-between-two-excel-files-with-python","Fuzzy Match Names Between Two Excel Files with Python","Join two spreadsheets when the names do not quite match — Acme Ltd vs ACME Limited — with rapidfuzz: normalise names, choose a scorer, set a cut-off, score every pair at once, and send doubtful matches for review.",[103,10,11],{"path":238,"title":239,"description":240,"type":17,"topics":241,"kind":12},"\u002Fadvanced-data-transformation-and-cleaning\u002Fmerging-and-joining-excel-dataframes\u002Fmerge-excel-data-on-multiple-key-columns","Merge Excel Data on Multiple Key Columns with pandas","Match rows on region and product, or store and date, rather than on one ID. Merge on several columns at once, find why some rows do not match — a key typed as 7 in one file and \"007\" in another, a trailing space — guard against duplicate keys multiplying rows, and fall back to a less specific key when the exact combination is missing.",[103,11,10],{"path":243,"title":244,"description":245,"type":17,"topics":246,"kind":12},"\u002Fadvanced-data-transformation-and-cleaning\u002Fmerging-and-joining-excel-dataframes\u002Fmerge-on-keys-that-differ-in-case-and-spacing-with-pandas","Merge on Keys That Differ in Case and Spacing with pandas","A merge that should match every row matches half of them because one file says \"SKU-001 \" and the other \"sku-001\", or an ID has lost its leading zeros, or an invisible non-breaking space hides in a cell. Build a normalised join key on both sides, merge on it while keeping the original values, detect keys that collapse into collisions, and report what still does not match.",[103,10],{"path":248,"title":249,"description":250,"type":17,"topics":251,"kind":12},"\u002Fadvanced-data-transformation-and-cleaning\u002Freading-excel-with-polars-and-arrow\u002Fclean-and-aggregate-excel-data-with-polars","Clean and Aggregate Excel Data with Polars Expressions","Clean a messy Excel export with Polars expressions — trim and normalise text, parse amounts typed with currency symbols and thousands separators, find the values that failed, add conditional columns, then aggregate with group_by, window shares and a pivot, and write the summary back to Excel.",[252,10,253],"polars","pivots-and-summaries",{"path":255,"title":256,"description":257,"type":17,"topics":258,"kind":12},"\u002Fadvanced-data-transformation-and-cleaning\u002Freading-excel-with-polars-and-arrow\u002Fclean-wide-excel-sheets-with-polars-column-selectors","Clean Wide Excel Sheets with Polars Column Selectors","Wide Excel sheets with a column per month, region or measure are tedious to clean column by column. Polars column selectors pick columns by type, name pattern or position and combine with set operations, so one expression can trim every text column, fill every numeric gap, total every monthly column, rename a whole block and unpivot it — and keep working when next month adds a column.",[252,10],{"path":260,"title":261,"description":262,"type":17,"topics":263,"kind":12},"\u002Fadvanced-data-transformation-and-cleaning\u002Fvalidating-excel-data-with-python\u002Fdetect-possible-duplicate-invoices","Detect Possible Duplicate Invoices","Find supplier invoices that may have been entered or paid twice in an Excel payables export: exact duplicates, invoice numbers that differ only in formatting such as \"INV-001042\" and \"1042\", the same amount from the same supplier within a few days under a different number, and near-identical supplier names — scored, explained and listed for review before the payment run.",[64,10],{"path":265,"title":266,"description":267,"type":17,"topics":268,"kind":12},"\u002Fadvanced-data-transformation-and-cleaning\u002Fvalidating-excel-data-with-python\u002Ffind-duplicate-rows-in-excel-with-python","Find Duplicate Rows in Excel with Python","Detect exact and near-duplicate rows in a spreadsheet with pandas — key-based duplicates, whitespace and case traps, duplicate groups with counts, and a report you can send back.",[10,64,11],{"path":270,"title":271,"description":272,"type":17,"topics":273,"kind":12},"\u002Fadvanced-data-transformation-and-cleaning\u002Fvalidating-excel-data-with-python\u002Fvalidate-email-and-phone-formats-in-excel-data","Validate Email and Phone Formats in Excel Data with Python","Check the email addresses and phone numbers in a contact sheet before importing it — a quick regex screen, email-validator for real address syntax, phonenumbers for national and international formats, normalised values for deduplication, and a report of invalid cells with their spreadsheet row numbers.",[64,10,11],{"path":275,"title":276,"description":277,"type":17,"topics":278,"kind":12},"\u002Fadvanced-data-transformation-and-cleaning\u002Fworking-with-dates-and-times-in-excel-data\u002Fconvert-text-dates-like-20240131-with-pandas","Convert Dates Like 20240131, 31.01.24 and 2024031 with pandas","ERP and mainframe exports write dates as 20240131, 31.01.24, 31-Jan-24 or day-of-year codes, and read_excel returns them as integers or text. Convert each layout with an explicit format, handle placeholders like 00000000, invalid dates such as 20240231 and two-digit years, and report what did not convert.",[97,10,11],{"path":280,"title":281,"description":282,"type":17,"topics":283,"kind":12},"\u002Fadvanced-data-transformation-and-cleaning\u002Fworking-with-dates-and-times-in-excel-data\u002Fconvert-text-months-and-weekdays-to-dates","Convert Text Months and Weekdays to Dates","Turn the period labels people type into Excel — \"Jan 2026\", \"September\", \"Sept-26\", \"Q3 2026\", \"Week 14\", \"FY27 P03\", \"Mon\" — into real dates and sortable periods with pandas: explicit formats for month names, a lookup for abbreviations pandas does not know, ISO week numbers, quarters, fiscal periods with a different year start, and weekday names in order, with every unparsed label reported.",[97,10],{"path":285,"title":286,"description":287,"type":17,"topics":288,"kind":12},"\u002Fadvanced-data-transformation-and-cleaning\u002Fworking-with-dates-and-times-in-excel-data\u002Ffix-mixed-day-first-and-month-first-dates-in-excel-data","Fix Mixed Day-First and Month-First Dates in Excel Data","A date column that combines 03\u002F04\u002F2026 from a UK office, 04\u002F13\u002F2026 from a US one, ISO dates from a system and real Excel dates cannot be parsed with one setting — and pandas' format=\"mixed\" with dayfirst=True silently swaps both unambiguous US dates and ISO dates. Classify each value, infer each source's convention from its unambiguous rows, parse with explicit formats, and flag what stays ambiguous.",[97,10],{"path":290,"title":291,"description":292,"type":17,"topics":293,"kind":12},"\u002Fadvanced-data-transformation-and-cleaning\u002Fworking-with-large-excel-files-in-python\u002Fremove-duplicate-rows-across-many-large-excel-files","Remove Duplicate Rows Across Many Large Excel Files","De-duplicate records spread over dozens of overlapping Excel exports without loading them all at once: stream rows file by file, fingerprint each record on normalised key fields, keep only a set of hashes in memory, write unique rows straight to an output workbook, log every duplicate with its source file and row, and choose between keeping the first or the latest copy.",[294,10],"large-files",{"path":296,"title":297,"description":298,"type":17,"topics":299,"kind":12},"\u002Fautomating-reporting-workflows\u002Ftesting-and-packaging-excel-automation-scripts\u002Ftest-excel-cleaning-code-with-hypothesis","Test Excel Cleaning Code with Hypothesis","Let Hypothesis find the inputs your Excel code breaks on: property-based tests for a text-cleaning function, a round-trip property for writing and reading workbooks that uncovers vanishing empty strings, control characters returned as _x001F_ and floats cut to 15 significant digits, DataFrame strategies for cleaning steps, and settings for CI.",[300,10],"reliable-jobs",{"path":302,"title":303,"description":304,"type":17,"topics":305,"kind":12},"\u002Fgetting-started-with-python-excel-automation\u002Fchoosing-a-python-excel-library\u002Fpython-vs-power-query-for-cleaning-excel-data","Python vs Power Query for Cleaning Excel Data","Power Query and pandas both clean and reshape Excel data with repeatable steps. Compare them on who maintains the work, where it runs, what logic each handles well and how they scale — with the same unpivot-and-clean job in M and in Python.",[306,10],"choosing-libraries",{"path":308,"title":309,"description":310,"type":17,"topics":311,"kind":12},"\u002Fgetting-started-with-python-excel-automation\u002Fhandling-excel-file-formats-and-conversions\u002Fread-csv-exports-with-semicolons-and-decimal-commas","Read European CSV Exports with Semicolons and Decimal Commas","CSV files saved by European Excel and ERP systems use semicolons between fields, commas as decimal points, dots as thousands separators and a Windows code page. Read them into pandas correctly — and avoid the thousands option silently turning dates like 31.01.2026 into the number 31012026.",[86,180,10],{"path":313,"title":314,"description":315,"type":17,"topics":316,"kind":12},"\u002Fgetting-started-with-python-excel-automation\u002Freading-excel-files-with-pandas\u002Fkeep-leading-zeros-when-reading-excel-with-pandas","Keep Leading Zeros When Reading Excel with pandas","Customer IDs, ZIP codes and phone numbers lose their leading zeros in read_excel. Fix it for text cells with dtype, and for numbers that only look padded because of a 00000 format, by reading the format with openpyxl.",[180,10,11],{"path":318,"title":319,"description":320,"type":17,"topics":321,"kind":12},"\u002Fgetting-started-with-python-excel-automation\u002Freading-excel-files-with-pandas\u002Fread-boolean-columns-from-excel-with-pandas","Read Yes\u002FNo and TRUE\u002FFALSE Columns as Booleans with pandas","Excel sheets store flags as TRUE\u002FFALSE cells, \"Yes\"\u002F\"No\" text, Y\u002FN codes, 1\u002F0 or a tick mark. See what read_excel does with each, why true_values quietly skips columns with blanks or odd spellings, and how to convert every flag column into a reliable nullable boolean.",[180,10,11],{"path":323,"title":324,"description":325,"type":17,"topics":326,"kind":12},"\u002Fgetting-started-with-python-excel-automation\u002Freading-excel-files-with-pandas\u002Fuse-converters-when-reading-excel-with-pandas","Use Converters When Reading Excel with pandas","Clean values as they are read — account codes with leading zeros, currency text, Y\u002FN flags and mixed date cells — with read_excel converters, and know how they interact with dtype and empty cells.",[180,10,11],{"path":328,"title":329,"description":330,"type":17,"topics":331,"kind":12},"\u002Fgetting-started-with-python-excel-automation\u002Ftroubleshooting-common-python-excel-errors\u002Ffix-could-not-convert-string-to-float-in-excel-data","Fix \"Could Not Convert String to Float\" in Excel Data","Fix ValueError: could not convert string to float when converting an Excel column with pandas: find exactly which cells fail and why, then clean thousands separators, currency symbols, percentages, accounting negatives in parentheses, non-breaking spaces, Unicode minus signs, European decimal commas and placeholder text — and report what could not be converted instead of hiding it.",[332,10],"troubleshooting",{"path":334,"title":335,"description":336,"type":17,"topics":337,"kind":12},"\u002Fgetting-started-with-python-excel-automation\u002Ftroubleshooting-common-python-excel-errors\u002Ffix-floating-point-noise-in-excel-output","Fix Floating-Point Noise Like 0.1 + 0.2 ≠ 0.3 in Excel Output","Sums such as 0.1 + 0.2 print as 0.30000000000000004, prices turn into 1998 cents instead of 1999, and threshold checks fail by a hair. See where binary floating point leaks into Excel reports, what the xlsx writers already hide, and how to round, compare and convert money safely.",[332,10,11],{"path":339,"title":340,"description":341,"type":17,"topics":342,"kind":12},"\u002Fgetting-started-with-python-excel-automation\u002Fusing-openpyxl-for-excel-file-manipulation\u002Fdelete-empty-rows-and-columns-with-openpyxl","Delete Empty Rows and Columns with openpyxl","Remove blank rows and columns from a worksheet in place while keeping its formatting: detect empty rows without creating cells, delete them in runs from the bottom up, handle empty columns, repair row heights, merged cells and formulas that delete_rows leaves behind, and switch to a copy-based rebuild when the sheet is large.",[20,10],{"path":344,"title":345,"description":346,"type":17,"topics":347,"kind":12},"\u002Fgetting-started-with-python-excel-automation\u002Fusing-python-in-excel\u002Fclean-data-with-pandas-in-python-in-excel","Clean Data with pandas in Python in Excel","Use pandas inside Excel's =PY() cells to clean a messy table — trim text, fix types, drop duplicates, standardise categories — and return the cleaned table to the grid, with the calculation-order and output-mode rules that make it work.",[348,10,11],"python-in-excel",1790972052271]