3 回答
TA贡献1812条经验 获得超5个赞
groupby将轻松构建 sub_dataframes per partition_num。从那时起,处理很简单:
for i, x in df.groupby('partition_num'):
if (x.iloc[0]['partition_num':] != x.iloc[-1]['partition_num':]).any():
s = x.iloc[0].copy()
s.id = x.iloc[-1].id + 1
df = df.append(s).reset_index(drop=True).rename_axis('row')
TA贡献1836条经验 获得超4个赞
以下代码比较'partition_num'第一行和最后一行中的值,如果不匹配,则将第一行附加到数据帧的末尾:
if df.loc[0, 'partition_num'] != df.loc[len(df)-1, 'partition_num']:
df = df.append(df.loc[0, :]).reset_index(drop=True)
df.index.name = 'row'
print(df)
id partition_num lat long time
row
0 1 7333 24 26 9
1 2 7333 15 19 10
2 3 7333 24 26 9
3 1 8999 26 18 15
4 2 8999 15 17 45
5 3 8999 26 18 15
6 1 3455 12 14 18
7 2 3455 12 14 18
8 1 7333 24 26 9
索引列设置为“行”,它被重置和重命名以获得正确的排序。
添加回答
举报