如何从数据框中删除 n并将数据移至新行

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从数据框中删除 n并将数据移至新行相关的知识,希望对你有一定的参考价值。

我有一个看起来像这样的大熊猫数据框

Index   column1   column2   column3
  0        3      2 
89     8 
56
  1        7
  2        8         6          4

我想摆脱 n并将剩余的内容移到下一个。因此,我想要像这样的数据框

Index   column1   column2   column3
  0        3         2         8
  1        7         89        56
  2        8         6          4

我已经能够使用替换功能删除 n

df1.replace(to_replace=[r"\t|\n|\r", "	|
|
"], value=["",""], regex=True)

但是我无法将89,56的整数值移到下一行。有可能

答案

一种方法是定义一个使列变平的函数:

from itertools import chain

def flatten(col):
    return list(chain.from_iterable([i for i in col.str.split(r" \n") if i]))

df[["column2","column3"]] = df[["column2","column3"]].apply(flatten)

print (df)

   Index  column1 column2 column3
0      0        3       2       8
1      1        7      89      56
2      2        8       6       4
另一答案

用途:

def expand(col):
    return (
        col.str.split(r"s\n")
        .explode()
        .dropna()
        .reset_index(drop=True))


df[["column2", "column3"]] = df[["column2", "column3"]].apply(expand)
print(df)

此打印:

   Index  column1 column2 column3
0      0        3       2       8
1      1        7      89      56
2      2        8       6       4

以上是关于如何从数据框中删除 n并将数据移至新行的主要内容,如果未能解决你的问题,请参考以下文章

如何从数据库中选择数据并将其显示在gridview的新行上

如何根据基于数据框的两个或多个条件在 MultiIndex 数据框中添加新行

迭代循环并将列表添加到新行或新列中的数据框

如何过滤数据框行并将总和保存在新行中?

Vim常用命令

如何删除数据框中的回车符