Pandas разбить значение ячейки на лоты с помощью \ n, но оставить их в одной строке - PullRequest
0 голосов
/ 04 мая 2020

У меня есть демонстрационный код, чтобы описать требование:

df = pd.DataFrame({'Item':['Item1','Item2','Item3'],'Des':['Welcome\nto use Python','Hello','Python\nis\ngood']})
print(df)

вывод:

    Item                     Des
0  Item1  Welcome\nto use Python
1  Item2                   Hello
2  Item3        Python\nis\ngood

Ниже вы можете видеть, что Welcome\nto use Python разбит на 2 фазы (слова) с \n, но Welcome и to use Python все еще находятся в одной строке.

    Item                     Des
0  Item1                   Welcome
                           to use Python
1  Item2                   Hello
2  Item3                   Python
                           is
                           good

Это требование. Я могу разбить значение ячейки на список, но понятия не имею о следующих шагах. Не могли бы вы дать несколько советов о том, как реализовать это с Pandas? Спасибо.

df['Des_'] = df['Des'].apply(lambda x: x.split('\n'))

Когда я сохраняю его в Excel, он должен выглядеть следующим образом:

save to excel

1 Ответ

1 голос
/ 04 мая 2020

IIU C,

df.assign(Des=df['Des'].str.split('\n')).explode('Des')

Выход:

    Item            Des
0  Item1        Welcome
0  Item1  to use Python
1  Item2          Hello
2  Item3         Python
2  Item3             is
2  Item3           good
...