如何从数据框中删除 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并将数据移至新行的主要内容,如果未能解决你的问题,请参考以下文章