I am aware of the following questions:
1.) How to split a column based on several string indices using pandas? 2.) How do I split text in a column into multiple rows
The str.split
method has an expand
argument:
>>> df['string'].str.split(',', expand=True)
0 1 2
0 astring isa string
1 another string la
2 123 232 another
>>>
With column names:
>>> df['string'].str.split(',', expand=True).rename(columns = lambda x: "string"+str(x+1))
string1 string2 string3
0 astring isa string
1 another string la
2 123 232 another
Much neater with Python >= 3.6 f-strings:
>>> (df['string'].str.split(',', expand=True)
... .rename(columns=lambda x: f"string_{x+1}"))
string_1 string_2 string_3
0 astring isa string
1 another string la
2 123 232 another
Slightly less concise than the expand
option, but here is an alternative way:
In [29]: cols = ['string_1', 'string_2', 'string_3']
In [30]: pandas.DataFrame(df.string.str.split(', ').tolist(), columns=cols)
Out[30]:
string_1 string_2 string_3
0 astring isa string
1 another string la
2 123 232 another