Skip to content
Advertisement

Pandas FutureWarning: Columnar iteration over characters will be deprecated in future releases

I have an existing solution to split a dataframe with one column into 2 columns.

df['A'], df['B'] = df['AB'].str.split(' ', 1).str

Recently, I got the following warning FutureWarning: Columnar iteration over characters will be deprecated in future releases.

How to fix this warning?

I’m using python 3.7

Advertisement

Answer

That’s not entirely correct, plus the trailing .str does not make sense. Since split with expand returns a DataFrame, this is easier:

df[['A', 'B']] = df['AB'].str.split(' ', n=1, expand=True)

Your existing method without expand returns a single Series with a list of columns. I’m not sure what version of pandas used to work with your code but AFAIK you’ll need to make some tweaks for this to work with pandas (>= 1.0) today. Assignment in this way is tedious but still possible.

s = df['AB'].str.split(' ', n=1)
df['A'], df['B'] = s.str[0], s.str[1]

I prefer the expand solution as it’s a line shorter.

User contributions licensed under: CC BY-SA
3 People found this is helpful
Advertisement