已经有一个答案可以处理给定的相对简单的数据框 here .
但是,我手头的数据框有多个列和大量行。一个数据帧包含三个沿轴 = 0 附加的数据帧。 (一个的底端连接到下一个的顶部。)它们由一行 NaN 值分隔。
如何通过沿着 NaN 行拆分这一数据来创建三个数据帧?
最佳答案
就像您链接的答案一样,您想要创建一个列来标识组号。然后您可以应用相同的解决方案。
为此,您必须测试一行的所有值是否为 NaN
。我不知道 pandas
是否内置了这样的测试,但是 pandas
有一个测试来检查 Series 是否充满了 NaN
.所以你想要做的是在你的数据帧的转置上执行它,这样你的“Series
”实际上就是你的行:
df["group_no"] = df.isnull().all(axis=1).cumsum()
此时您可以使用该答案中的相同技术来拆分数据帧。
您可能想在最后执行 .dropna()
,因为您的结果中仍会有 NaN
行。
关于python - 在 NaN 行拆分数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42096811/