我有一个数据框,其中几列代表分类数据。我想根据每种组合将其拆分。以下是我所拥有的简化版本:
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
...等。有没有办法做到这一点?命名约定是否可以自动化,因此它包含每个变量组合的名称?
如果我在这里提出的要求有任何含糊之处,请告诉我,并提前感谢您的帮助!
答案 0 :(得分: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