๐Ÿ€Zerve chosen as NCAA's Agentic Data Platform for 2026 Hackathonยท๐ŸงฎMeet the Zerve Team at Data Decoded Londonยท๐Ÿ“ˆWe're hiring โ€” awesome new roles just gone live!
Back
Pandas

TypeError: Cannot Concatenate Object of Type 'str' โ€” How to Fix It

Answer

This error occurs when you pass a string to pd.concat() instead of a list of dataframes. Fix it by wrapping your dataframes in a list: pd.concat([df1, df2]) not pd.concat(df1, df2). The function expects an iterable of dataframes, not separate arguments.

Why This Happens

pd.concat() takes a single iterable (list, tuple) containing the dataframes you want to combine. If you pass dataframes as separate arguments, or accidentally pass a string or other non-iterable, pandas tries to iterate over it character by character and fails. This also happens when a variable you thought was a dataframe is actually a string.

Solution

The rule: pd.concat() always takes a list. If you're getting this error, check that all your variables are actually dataframes.

pythonimport pandas as pd

df1 = pd.DataFrame({'a': [1, 2]})
df2 = pd.DataFrame({'a': [3, 4]})

# โŒ Problematic: passing dataframes as separate arguments
pd.concat(df1, df2)
# TypeError: cannot concatenate object of type '<class 'str'>'

# โŒ Also problematic: variable is actually a string
df1 = "path/to/file.csv"  # forgot to read it
pd.concat([df1, df2])

# โœ… Fixed: pass a list of dataframes
pd.concat([df1, df2])

# โœ… Verify types if unsure
print(type(df1))  # should be <class 'pandas.core.frame.DataFrame'>

Better Workflow

Zerve displays variable types and previews inline, so you can immediately see if something that should be a dataframe is actually a string or other type. Catches these bugs before they cascade.

Better workflow

Related Topics

Decision-grade data work

Explore, analyze and deploy your first project in minutes