处理这么一个pandas的dataframe数据数据:
这里行索引是连续n个0-m的序列,这个m不是固定值
比如0-6、0-8……0-55,现在想把每一个0~m分为一个单独的dataframe。
本来想用groupby()
,研究了半天感觉不太行,还是得自己分。
#新建一列保存原来的index
maxmin_all_locations["index"] = maxmin_all_locations.index
#把索引重置一下,从0正向排序
maxmin_all_locations = maxmin_all_locations.reset_index(drop=True)
整理好是这样:
然后按照index==0的行定位截断:
# 获取行索引中 0 的位置
zero_indices = maxmin_all_locations.index[maxmin_all_locations['index'] == 0].tolist()
# 分组
groups = []
for i in range(len(zero_indices) - 1):
start_index = zero_indices[i]
end_index = zero_indices[i + 1]
group = maxmin_all_locations.iloc[start_index:end_index]
groups.append(group)
# 处理最后一组数据
last_group = maxmin_all_locations.iloc[zero_indices[-1]:]
groups.append(last_group)
# 打印每个组的大小
for i, group in enumerate(groups):
print(f"Group {i}: {group.shape}")
打印出来结果如下: