Pandas FutureWarning:未来版本中将弃用对字符的列式迭代

use*_*207 12 python dataframe python-3.x pandas

我有一个现有的解决方案,可以将一列的数据帧拆分为 2 列。

df['A'], df['B'] = df['AB'].str.split(' ', 1).str
Run Code Online (Sandbox Code Playgroud)

最近,我收到以下警告 FutureWarning: Columnar iteration over characters will be deprecated in future releases.

如何修复此警告?

我正在使用 python 3.7

cs9*_*s95 17

这并不完全正确,加上尾随.str没有意义。由于splitwithexpand返回一个 DataFrame,这更容易:

df[['A', 'B']] = df['AB'].str.split(' ', n=1, expand=True)
Run Code Online (Sandbox Code Playgroud)

您现有的方法没有expand返回一个带有列列表的系列。我不确定过去使用什么版本的熊猫来处理您的代码,但 AFAIK 您需要对此进行一些调整才能在今天与熊猫(> = 1.0)一起使用。以这种方式分配是乏味的,但仍然是可能的。

s = df['AB'].str.split(' ', n=1)
df['A'], df['B'] = s.str[0], s.str[1]
Run Code Online (Sandbox Code Playgroud)

我更喜欢expand解决方案,因为它的行更短。