How to Split a CSV Column Into Two Columns — No Code Required
Table of Contents
You have a CSV with a "Full Name" column — but your CRM wants separate "First Name" and "Last Name" fields. Or maybe you have a combined "City, State" column that needs to be two columns. Or an address field that has everything jammed together.
The standard fix is Python or Excel formulas, which works — but it takes 10 minutes to set up, and breaks if your data has edge cases. There's a faster way: paste your CSV into a browser tool, set the delimiter, name the two new columns, and download.
This post shows you exactly how to do it with the CSV Column Mapper, and covers the common splitting scenarios people run into.
When You Actually Need to Split a Column
Column splitting comes up in a few recurring situations:
- Full Name → First Name + Last Name. Almost every CRM import wants them separate. If you got a list from somewhere else, you'll often have a single name column.
- Address → Street + City + State + ZIP. Marketing databases love stuffing everything into one address line. Import templates want them apart.
- Combined code fields. Product SKUs sometimes embed category codes: "CAT-PRODUCT-SIZE" needs to split by "-" into three separate attributes.
- Date/time fields. A "2026-04-09 14:30:00" column might need to become a date column and a time column separately.
All of these follow the same pattern: one column, a consistent delimiter, two (or more) output columns. Once you know the delimiter, the split is mechanical.
How to Split a Column Using the CSV Column Mapper
Open the CSV Column Mapper. Drop your CSV file or paste the data directly.
Once your file loads, you'll see a column list with drag handles. Below that is an Actions bar with a dropdown. Here's the process:
- Select "Split column" from the Action dropdown.
- Choose the column you want to split from the column selector.
- Set the delimiter. For "John Smith", the delimiter is a space. For "Austin, TX", use a comma followed by a space. For "CAT-PRODUCT", use a hyphen.
- Name the two output columns. "First Name" and "Last Name", or "City" and "State" — whatever your import target expects.
- Click Apply. The original column disappears and two new columns appear in its place.
Preview your data, then click "Apply Mapping and Download" to get the updated CSV. The split happens at the first occurrence of the delimiter — so "Mary Jo Smith" split by space becomes "Mary" and "Jo Smith". That's usually what you want for names (first word vs everything else).
The Full Name Split — What Actually Happens
Name splitting is the most common request. A few things to know before you start:
The split happens at the first space. "John Smith" → "John" and "Smith". "Mary Jo Smith" → "Mary" and "Jo Smith". "Dr. Sarah Lee" → "Dr." and "Sarah Lee". This is correct behavior for most CRM imports — first token is first name, remainder is last name.
If names have no space, the split puts the full value in the first column and leaves the second empty. Worth reviewing your output for single-word entries.
Leading/trailing spaces cause problems. If your name column has a space before the first character, the split will produce an empty first name. Run your data through the CSV Sanitizer first to trim whitespace — it takes about 30 seconds and prevents this.
After splitting, you can rename both columns to exactly what your import template needs. HubSpot expects "First Name" and "Last Name". Salesforce wants "FirstName" and "LastName" (no space). Just type the correct header in the rename field for each column and you're done.
Sell Custom Apparel — We Handle Printing & Free ShippingSplitting Address Fields and Compound Data
Address splitting is trickier because addresses aren't always consistent. If your data came from a form that captured everything in one field, the format might vary row to row. Before splitting, check a sample of your data to confirm the delimiter is consistent.
Common address formats:
- "123 Main St, Austin, TX 78701" — comma-delimited. But splitting by comma gives you "123 Main St", "Austin", " TX 78701" — you'd need multiple splits to separate state and ZIP.
- "123 Main St | Austin | TX" — pipe-delimited. Enter "|" as the delimiter.
For multi-part splits (three or more output columns), you run the split operation multiple times. Split "City, State ZIP" by comma to get "City" and "State ZIP". Then split "State ZIP" by space to get "State" and "ZIP". Each split is a separate action, and the tool updates the column list each time.
SKU and code fields are usually more reliable — the delimiter is consistent by design. "CAT-PRODUCT-SIZE" always uses hyphens. Split by "-" and you get three clean columns. Name them whatever the import schema expects.
After the Split — Rename, Reorder, and Clean Up
Once you've split your columns, you'll typically need to do a few more things before the file is import-ready:
Rename the new columns to match the exact headers your target system expects. Every CRM has slightly different naming conventions. HubSpot, Salesforce, Klaviyo, Google Contacts, Outlook — all have their own expected column names. Click the rename field next to each column and type the correct header.
Reorder columns by dragging them to match your import template. Some systems care about column order; others only care about header names. Either way, it's easier to review a file that matches the expected structure.
Delete columns you don't need. After splitting, the original combined column is gone, but there may be other columns in your file that your target system doesn't accept. Click the delete button on those columns to remove them.
The final step is always a quick preview. Click "Preview" to see the first 10 rows with the new column structure. If anything looks off, fix it before downloading. Takes 10 seconds and saves you an import error.
Why Not Just Use Python or Excel?
Both work fine. If you're already in a Python workflow or have Excel open, stick with what you know.
Python: df[['First Name', 'Last Name']] = df['Full Name'].str.split(' ', n=1, expand=True). That's the pandas version. It works, but you need Python installed, a CSV loaded into a dataframe, and you need to handle the edge cases (missing values, extra spaces, names with no space).
Excel: Text to Columns under the Data tab. Works for straightforward cases. But Excel sometimes auto-formats data on import — leading zeros disappear, dates get reformatted, long numbers become scientific notation. If your CSV has zip codes starting with 0 or any numeric IDs, opening it in Excel can silently corrupt them.
The browser tool avoids both issues. No installation, no Excel reformatting. You paste the raw CSV, it stays raw, you split it, and download the result. For a one-off clean and split, it's usually the fastest path.
Try It Free — No Signup Required
Runs 100% in your browser. No data is collected, stored, or sent anywhere.
Open CSV Column MapperFrequently Asked Questions
Can I split a column into more than two parts?
The split operation always produces two output columns — the text before the first delimiter and everything after. To split into three or more parts, run the split multiple times. Split "City, State, ZIP" by comma first to get "City" and "State, ZIP". Then split "State, ZIP" by comma again to get "State" and "ZIP".
What if some rows have no delimiter — like a single first name with no last name?
If a row has no delimiter, the entire value goes into the first output column and the second is left empty. That is usually the right behavior — you get the name in First Name, Last Name is blank. Worth reviewing afterward if blank last names are a problem for your import.
Does the original column get removed after splitting?
Yes. When you apply a split, the original column is replaced by the two new columns you named. If you need the original preserved, add a step first: rename a duplicate column or keep a copy of the original CSV before splitting.
Can I split by a multi-character delimiter like ", " (comma space)?
Yes. Type the full delimiter string in the delimiter field — including the space if you want comma-space. "Austin, TX" split by ", " gives "Austin" and "TX" cleanly. Using just "," would give "Austin" and " TX" with a leading space.

