我想将数据帧分割成块。我创建了一个函数,它能够将数据帧分割成相同大小的块,但是我无法弄清楚如何按组分割。
数据帧的每个分割必须包含分组变量的所有实例,我希望能够灵活地确定可以包含多少个组(因为它们相对较小)。
示例数据框:
A 1
A 2
B 3
C 1
D 9
D 10
目标分割(至少包括两组):
Split 1:
A 1
A 2
B 3
Split 2:
C 1
D 9
D 10
如果有帮助的话,我当前的函数如下所示:
def split_frame(sequence, size=10000):
return (sequence[position:position + size] for position in range(0, len(sequence), size))
帮助表示感谢!
适用于 Python 2 和 3:
df = pd.DataFrame(data=['a', 'a', 'b', 'c', 'a', 'a', 'b', 'v', 'v', 'f'], columns=['A'])
def iter_by_group(df, column, num_groups):
groups = []
for i, group in df.groupby(column):
groups.append(group)
if len(groups) == num_groups:
yield pd.concat(groups)
groups = []
if groups:
yield pd.concat(groups)
for group in iter_by_group(df, 'A', 2):
print(group)
A
0 a
1 a
4 a
5 a
2 b
6 b
A
3 c
9 f
A
7 v
8 v
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)