猿问

将多行数据帧单元格转换为多行 - Python

我正在尝试将 Pandas 数据框中的多行单元格转换为表中的多行


  column1               column2    column3

0        1                    Hi      hello

1        2  some\nTest\nTo\nWork         hi

2        3                  Hiya  somewhere

3        4                             test

4        5               Another       test2

5        6                             test3

鉴于上表,我希望我的输出如下所示:


   column1               column2    column3

0        1                    Hi      hello

1        2                    some    hi

2        2                    Test    hi

3        2                    To      hi

4        2                  work      hi

5        3                  Hiya      somewhere

6        4                             test

7        5                  Another    test2

8        6                             test3


四季花海
浏览 170回答 2
2回答

红颜莎娜

试试这个: df.fillna('').set_index(['column1','column3']).stack().str.split('\n', expand=True).stack().unstack(-2).reset_index(-1, drop=True).reset_index()         Out[1516]:    column1    column3 column20        1      hello      Hi1        2         hi    some2        2         hi    test3        2         hi      To4        2         hi    Work5        3  somewhere    Hiya

慕仙森

在换行符和“取消嵌套”上拆分:from itertools import chainv = df.pop('column2').str.split('\n')  # if this doesn't work, try r'\\n'. df = (pd.DataFrame(df.values.repeat(v.str.len(),axis=0), columns=df.columns)        .assign(column2=list(chain.from_iterable(v)))        .sort_index(axis=1))print(df)  column1 column2    column30       1      Hi      hello1       2    some         hi2       2    Test         hi3       2      To         hi4       2    Work         hi5       3    Hiya  somewhere
随时随地看视频慕课网APP

相关分类

Python
我要回答