Skip to content
Advertisement

Convert string (comma separated) to int list in pandas Dataframe

I have a Dataframe with a column which contains integers and sometimes a string which contains multiple numbers which are comma separated (like “1234567, 89012345, 65425774”).

I want to convert that string to an integer list so it’s easier to search for specific numbers.

In [1]: import pandas as pd

In [2]: raw_input  = "1111111111 666 10069759 9695011 9536391,2261003 9312405 15542804 15956127 8409044 9663061 7104622 3273441 3336156 15542815 15434808 3486259 8469323 7124395 15956159 3319393 15956184
      : 15956217 13035908 3299927"

In [3]: df = pd.DataFrame({'x':raw_input.split()})

In [4]: df.head()
Out[4]:
                 x
0       1111111111
1              666
2         10069759
3          9695011
4  9536391,2261003

That's how my column looks like

Advertisement

Answer

Since your column contains strings and integers, you want probably something like this:

def to_integers(column_value):
    if not isinstance(column_value, int):
        return [int(v) for v in column_value.split(',')]
    else:
        return column_value

df.loc[:, 'column_name'] = df.loc[:, 'column_name'].apply(to_integers)
User contributions licensed under: CC BY-SA
1 People found this is helpful
Advertisement