python - 在 NaN 行拆分数据框

标签 python pandas dataframe

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

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

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

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

最佳答案

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

为此,您必须测试一行的所有值是否为 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/

相关文章:

python - 过滤 Pandas 数据框列时如何使用.le()和.ge()?

python - num_epochs 和 steps 有什么区别?

python - 使用python,将文件复制到与该文件几乎同名的文件夹中

python - 如何应用具有多个拆分条件的 Pandas Groupby 并应用多个计算?

python - 从数据框中的列中提取星期几并放入另一列中

python - 将 np 数组添加到现有的 pandas 数据框

python - 在具有循环节点的复杂数据结构中寻找最短路径

python - 如何在Python中将字符串与点匹配

python - 对多个 y 轴进行绘图和颜色编码

r - 基于行号矩阵对数据帧进行子集化,并将结果保存在一个列表中