在 NaN 行拆分数据帧

Ase*_*wad 3 python dataframe pandas

已经有一个答案可以处理此处给出的相对简单的数据帧。

但是,我手头的数据框有多列和大量行。一个数据框包含沿轴 = 0 连接的三个数据框。(一个的底部连接到下一个的顶部。)它们由一行 NaN 值分隔。

如何通过沿 NaN 行拆分这一个数据来创建三个数据帧?

这是数据帧。 我打算沿着 NaN 行将它分成三个。

Mik*_*ikk 6

就像在您链接的答案中一样,您想要创建一个标识组编号的列。然后您可以应用相同的解决方案。

为此,您必须测试一行的所有值是否为NaN。我不知道是否有这样的测试内置pandas,但pandas有一个测试,以检查是否有系列充满NaN。因此,您要做的是在数据帧的转置上执行该操作,以便您的“ Series”实际上是您的行:

df["group_no"] = df.T.isnull().all().cumsum()
Run Code Online (Sandbox Code Playgroud)

此时,您可以使用该答案中的相同技术来拆分数据帧。

您可能希望.dropna()在最后执行 a ,因为您NaN的结果中仍然会有行。

  • 无需转置,只需执行`df.isnull().all(axis=1).cumsum()`。 (4认同)