在NaN行拆分Dataframe

时间:2017-02-07 18:02:13

标签: python pandas dataframe

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

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

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

This is the DataFrame. I intend to split it into three along the NaN rows.

1 个答案:

答案 0 :(得分:2)

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

为此,您必须对行的所有值进行测试NaN。我不知道pandas中是否内置了此类测试,但pandas有一项测试来检查系列是否已满NaN。所以你想要做的就是在你的数据帧的转置上执行它,这样你的“Series”实际上是你的行:

df["group_no"] = df.T.isnull().all().cumsum()

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

您最后可能想要.dropna(),因为您的结果中仍会有NaN行。