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
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)