0
0
PandasHow-ToBeginner · 3 min read

How to Use str.cat in pandas for String Concatenation

Use str.cat() in pandas to join strings in a Series or between Series and other strings. It allows adding separators with sep and handles missing values with na_rep to produce combined string outputs.
📐

Syntax

The str.cat() method syntax is:

  • Series.str.cat(others=None, sep=None, na_rep=None, join='left')

Explanation:

  • others: Another Series, list, or string to concatenate with the original Series.
  • sep: Separator string inserted between concatenated elements.
  • na_rep: String to replace missing values (NaN) before concatenation.
  • join: How to align indexes when concatenating with another Series ('left', 'right', 'outer', 'inner').
python
Series.str.cat(others=None, sep=None, na_rep=None, join='left')
💻

Example

This example shows how to concatenate strings in a pandas Series with a separator and how to join two Series element-wise.

python
import pandas as pd

s1 = pd.Series(['apple', 'banana', 'cherry'])
s2 = pd.Series(['pie', 'split', None])

# Concatenate s1 elements with a comma separator
result1 = s1.str.cat(sep=', ')

# Concatenate s1 and s2 element-wise with a space separator, replacing NaN with 'unknown'
result2 = s1.str.cat(others=s2, sep=' ', na_rep='unknown')

print('Concatenate all s1 elements with comma:')
print(result1)
print('\nConcatenate s1 and s2 element-wise:')
print(result2)
Output
Concatenate all s1 elements with comma: apple, banana, cherry Concatenate s1 and s2 element-wise: apple pie banana split cherry unknown
⚠️

Common Pitfalls

Common mistakes when using str.cat() include:

  • Not handling missing values (NaN), which results in NaN output if na_rep is not set.
  • Using sep without specifying others when concatenating all elements, which only works when concatenating Series elements themselves.
  • Misaligning indexes when concatenating two Series without setting the correct join parameter.
python
import pandas as pd

s1 = pd.Series(['cat', 'dog', None])
s2 = pd.Series(['fish', None, 'bird'])

# Wrong: missing na_rep leads to NaN in output
wrong = s1.str.cat(others=s2, sep='-')

# Right: specify na_rep to replace NaN
right = s1.str.cat(others=s2, sep='-', na_rep='missing')

print('Wrong output:')
print(wrong)
print('\nRight output:')
print(right)
Output
Wrong output: 0 cat-fish 1 NaN 2 NaN dtype: object Right output: 0 cat-fish 1 dog-missing 2 missing-bird dtype: object
📊

Quick Reference

ParameterDescriptionDefault
othersSeries, list, or string to concatenate with original SeriesNone
sepSeparator string between concatenated elementsNone
na_repString to replace NaN values before concatenationNone
joinHow to align indexes when concatenating with another Series ('left', 'right', 'outer', 'inner')'left'

Key Takeaways

Use str.cat() to join strings in a Series or between Series and other strings easily.
Set na_rep to handle missing values and avoid NaN results in concatenation.
Use sep to add separators like spaces or commas between concatenated strings.
When concatenating two Series, use join to control index alignment.
Without others parameter, str.cat(sep=) joins all Series elements into one string.