如何使用Python的pd.append函数向DataFrame插入指定时间的两行数据
解决方法
要实现你的需求,我们可以通过转换时间格式→构造插入数据→合并→排序的步骤完成,以下是具体实现:
完整代码示例
import pandas as pd # 初始化原始DataFrame df = pd.DataFrame({ 'Date_time': ['10/8/2022 6:30:00', '10/8/2022 7:40:00'], 'State': ['State A', 'State B'], 'Time_in_state(Hour)': [1.3, 0.3] }) # 将时间列转为datetime类型(保证后续排序逻辑正确) df['Date_time'] = pd.to_datetime(df['Date_time']) # 构造需要插入的两行数据 insert_data = pd.DataFrame({ 'Date_time': ['10/8/2022 7:00:00', '10/8/2022 7:00:00'], 'State': ['State A', 'State A'], 'Time_in_state(Hour)': [0.5, 0.667] }) insert_data['Date_time'] = pd.to_datetime(insert_data['Date_time']) # 使用pd.append合并数据(ignore_index避免索引重复) result_df = df.append(insert_data, ignore_index=True) # 按时间排序并重置索引,得到目标顺序 result_df = result_df.sort_values('Date_time').reset_index(drop=True) print(result_df)
关键步骤说明
- 时间格式转换:把
Date_time列转为datetime类型,避免字符串排序导致的时间顺序错误。 - 构造插入数据:严格按照目标格式创建两行待插入的记录,同样转换时间类型保证一致性。
- 合并与排序:用
pd.append合并后,通过sort_values按时间排序,确保插入的两行处于正确位置。
版本兼容提示
pd.append在pandas 1.4.0及以上版本已被标记为弃用,若需要兼容新版本,可将合并步骤替换为pd.concat:
result_df = pd.concat([df, insert_data], ignore_index=True)
内容的提问来源于stack exchange,提问作者tungage
相关产品推荐
相关产品推荐

