[英]Split pandas dataframe into multiple dataframes
我有一个数据框,其中的几列代表分类数据。 我想根据每种组合将其拆分。 以下是我所拥有的简化版本:
In [394]: df.head(10)
Out[394]:
existing priority State payment
0 Y N FL 10.4
1 N N CA 918.0
2 Y N CA 493.0
3 Y N FL 743.2
4 Y Y CA 898.0
5 N N CA -237.0
6 Y Y CA 510.0
7 N N CA -480.0
8 Y N FL -125.0
9 Y Y CA 211.0
我想要一个数据框,其中包含前三个变量的一个组合的所有条目,即:
existing priority State payment
0 Y N FL 10.4
1 Y N FL 743.2
2 Y N FL -125.0
...以及此后的每个组合...
existing priority State payment
0 N N CA 918.0
1 N N CA -237.0
2 N N CA -480.0
...等等。 有什么办法吗? 命名约定是否可以自动化,以便包含每个变量组合的名称?
让我知道我在这里提出的任何疑问,并在此先感谢您的帮助!
@EdChum是正确的。 很难想像您所想像的内容已适当划分。
@EdChum的答案
cols = ['existing', 'priority', 'State']
grps = df.groupby(cols)
gnms = grps.groups.keys()
grpd = grps.apply(pd.DataFrame.reset_index, drop=True)
for name in gnms:
print('\n{}\n\n{}\n'.format(name, grpd.loc[name]))
('Y', 'N', 'FL')
existing priority State payment
0 Y N FL 10.4
1 Y N FL 743.2
2 Y N FL -125.0
('Y', 'Y', 'CA')
existing priority State payment
0 Y Y CA 898.0
1 Y Y CA 510.0
2 Y Y CA 211.0
('Y', 'N', 'CA')
existing priority State payment
0 Y N CA 493.0
('N', 'N', 'CA')
existing priority State payment
0 N N CA 918.0
1 N N CA -237.0
2 N N CA -480.0
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.