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
索引列設置為“行”,它被重置和重命名以獲得正確的排序。
添加回答
舉報