python - 根据空列将熊猫数据框拆分为多个数据框
问题描述
我有一个熊猫数据框,如下所示:
a b c
0 1.0 NaN NaN
1 NaN 7.0 5.0
2 3.0 8.0 3.0
3 4.0 9.0 2.0
4 5.0 0.0 NaN
有没有一种简单的方法可以根据非空值将数据帧拆分为多个数据帧?
a
0 1.0
b c
1 7.0 5.0
a b c
2 3.0 8.0 3.0
3 4.0 9.0 2.0
a b
4 5.0 0.0
解决方案
与groupby
_dropna
for _, x in df.groupby(df.isnull().dot(df.columns)):
print(x.dropna(1))
a b c
2 3.0 8.0 3.0
3 4.0 9.0 2.0
b c
1 7.0 5.0
a
0 1.0
a b
4 5.0 0.0
我们可以将它们保存在 dict
d = {y : x.dropna(1) for y, x in df.groupby(df.isnull().dot(df.columns))}
更多信息使用dot
获取空列,如果它们相同,我们应该将它们组合在一起
df.isnull().dot(df.columns)
Out[1250]:
0 bc
1 a
2
3
4 c
dtype: object
推荐阅读
- javascript - 在获取期间处理对象返回“未定义”
- database - 创建dblink后无法访问oracle中的表
- c# - 未在 wxs 中指定 ProgramFilesFolder 的 ProgramFilesFolder 的默认安装路径
- javascript - Vue Render HTML - 你可能需要一个额外的加载器来处理这些加载器的结果
- python - 更新 Python TKinter 输入框中的值
- python - 需要帮助创建一个循环遍历 csv 文件列表、选择某些列并将它们再次保存为 csv 的函数
- json - 使用 VBScript 解析 JSON 文件 - QTP/UFT
- amazon-web-services - 客户能否找出 AWS 托管的 Web 应用程序位于哪个区域?
- powerbi - DAX 中相等的 bin 等效于 NTILE 函数
- visual-studio - Visual Studio Snippet 可以包含多个快捷方式吗?