为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

四季花海 2021-08-11 22:41:25
我正在尝试将 Pandas 数据框中的多行单元格转换为表中的多行  column1               column2    column30        1                    Hi      hello1        2  some\nTest\nTo\nWork         hi2        3                  Hiya  somewhere3        4                             test4        5               Another       test25        6                             test3鉴于上表,我希望我的输出如下所示:   column1               column2    column30        1                    Hi      hello1        2                    some    hi2        2                    Test    hi3        2                    To      hi4        2                  work      hi5        3                  Hiya      somewhere6        4                             test7        5                  Another    test28        6                             test3
查看完整描述

2 回答

?
红颜莎娜

TA贡献1842条经验 获得超12个赞

试试这个:


 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 column2

0        1      hello      Hi

1        2         hi    some

2        2         hi    test

3        2         hi      To

4        2         hi    Work

5        3  somewhere    Hiya


查看完整回答
反对 回复 2021-08-11
?
慕仙森

TA贡献1827条经验 获得超8个赞

在换行符和“取消嵌套”上拆分:


from itertools import chain


v = 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    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


查看完整回答
反对 回复 2021-08-11
  • 2 回答
  • 0 关注
  • 169 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信