Pandas Series str.split назначить результат разделения обратно исходному кадру данных как отдельные столбцы - PullRequest
2 голосов
/ 20 апреля 2020

У меня есть существующее решение для разделения фрейма данных с одним столбцом на 2 столбца.

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

Недавно я получил следующее предупреждение FutureWarning: Columnar iteration over characters will be deprecated in future releases.

Как исправить это предупреждение?

Я использую python 3.7

Ответы [ 2 ]

3 голосов
/ 20 апреля 2020

Это не совсем правильно, плюс завершающий .str не имеет смысла. Поскольку split с expand возвращает DataFrame, это проще:

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

Ваш существующий метод без expand возвращает одну серию со списком столбцов. Я не уверен, какая версия pandas использовалась для работы с вашим кодом, но AFAIK вам нужно сделать некоторые настройки, чтобы сегодня работать с pandas (> = 1.0). Назначение таким способом утомительно, но все же возможно.

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

Я предпочитаю решение expand, так как оно короче.

2 голосов
/ 20 апреля 2020

Или мы делаем

df['A'], df['B']=zip(*df['AB'].str.split(' ').tolist())
df
    AB  A  B
0  A B  A  B
1  A B  A  B
2  A B  A  B
3  A B  A  B
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...