如何在Pandas DataFrame中引用指定timestamp行的上一行并修改字段
Pandas 修改指定时间戳行的上一行state字段
实现代码
直接通过定位目标行索引,再取前一个索引修改即可,代码中明确引用了timestamp='18:00:00':
# 获取timestamp为18:00:00的行的索引 target_idx = dataframe[dataframe['timestamp'] == '18:00:00'].index[0] # 修改该行的上一行state为jazz dataframe.loc[target_idx - 1, 'state'] = 'jazz'
执行后结果
修改后的DataFrame如下:
issue_stat timestamp state 0 11:00:00 hi 1 12:40:00 lo 9 13:00:00 av 3 15:00:00 jazz 8 18:00:00 hi 4 20:00:00 lo
特殊情况处理
如果你的数据中timestamp='18:00:00'可能存在多行,或者目标行是第一行(索引为0),可以用下面的鲁棒性代码:
# 获取所有匹配的索引 target_indices = dataframe[dataframe['timestamp'] == '18:00:00'].index # 遍历每个索引,只修改非首行的上一行 for idx in target_indices: if idx > 0: dataframe.loc[idx - 1, 'state'] = 'jazz'
内容的提问来源于stack exchange,提问作者user19667022
相关产品推荐
相关产品推荐

