Search code examples
pythonstringpandasdataframe

Add a string prefix to each value in a pandas string column


I would like to prepend a string to the start of each value in a said column of a pandas dataframe. I am currently using:

df.ix[(df['col'] != False), 'col'] = 'str' + df[(df['col'] != False), 'col']

This seems an inelegant method. Do you know any other way (which maybe also adds the character to rows where that column is 0 or NaN)?

As an example, I would like to turn:

    col
1     a
2     0

into:

       col
1     stra
2     str0

Solution

  • df['col'] = 'str' + df['col'].astype(str)
    

    Example:

    >>> df = pd.DataFrame({'col':['a',0]})
    >>> df
      col
    0   a
    1   0
    >>> df['col'] = 'str' + df['col'].astype(str)
    >>> df
        col
    0  stra
    1  str0