python-3.x - 通过基于条件生成可能的组合将数据帧拆分为多个数据帧
问题描述
我有一个下面的数据框
df =
city value
hyderabad 1
chennai 1
mumbai 2
pune 2
delhi 3
nodia 3
我想将数据帧拆分为多个数据帧,以便为每个数据帧生成一个组合,不包括循环中具有相同值的行。结果集如下所示。
df = city value
hyderabad 1
mumbai 2
delhi 3
df = city value
hyderabad 1
mumbai 2
nodia 3
df = city value
hyderabad 1
pune 2
delhi 3
df = city value
hyderabad 1
pune 2
nodia 3
df = city value
chennai 1
mumbai 2
delhi 3
df = city value
chennai 1
mumbai 2
nodia 3
df = city value
chennai 1
pune 2
nodia 3
df = city value
chennai 1
pune 2
delhi 3
完成这项工作的最简单方法是什么,因为我不知道我将提前拥有多少行数据。
解决方案
尝试:
from itertools import product
for c in product(*[g.index.tolist() for _, g in df.groupby("value")]):
print(df.loc[c, :])
print()
印刷:
city value
0 hyderabad 1
2 mumbai 2
4 delhi 3
city value
0 hyderabad 1
2 mumbai 2
5 nodia 3
city value
0 hyderabad 1
3 pune 2
4 delhi 3
city value
0 hyderabad 1
3 pune 2
5 nodia 3
city value
1 chennai 1
2 mumbai 2
4 delhi 3
city value
1 chennai 1
2 mumbai 2
5 nodia 3
city value
1 chennai 1
3 pune 2
4 delhi 3
city value
1 chennai 1
3 pune 2
5 nodia 3
推荐阅读
- google-cloud-platform - Cloudbuild 服务帐号无权访问 projectID
- c# - 在 .NET CORE 3.1 应用程序中访问使用脚手架生成的视图时出错
- flutter - 在颤动图上显示跟随线和工具提示
- vue.js - 如何在 VueJs 中使用三元运算符
- sql-server - SQL Server WITH 子句,如何添加附加条件?
- c# - 当 AutoSizeRowsMode 为 AllCells 时,datagridview 无法设置行高
- html - 如果文本像“...更多”一样溢出,如何添加自定义文本
- apache-flink - 对 JobManager 和 JobMaster 感到困惑
- arrays - 如何在 MPLABx 中以图形方式可视化数组的内容
- c# - 存储到数据库中的长文本字符串的有效比较