如何在Python中对已有DataFrame实现增量加载并更新Record_Flag
Pandas实现增量加载并更新Record_Flag标识
实现步骤:
步骤1:更新原有全量数据的Record_Flag
直接将df1中所有行的Record_Flag从"I"替换为"U":df1['Record_Flag'] = 'U'步骤2:处理增量数据
先对齐增量数据df2的列名(与df1保持一致),再新增Record_Flag列并赋值为"I":# 统一列名(匹配df1的列名) df2 = df2.rename(columns={'X_Coordinate': 'X_coordinate', 'Y_Coordinate': 'Y-Coordinate'}) # 添加Record_Flag列 df2['Record_Flag'] = 'I'步骤3:合并全量与增量数据
使用pd.concat合并两个DataFrame,重置索引避免重复:import pandas as pd # 合并数据 df1 = pd.concat([df1, df2], ignore_index=True)步骤4:截断增量数据
清空df2的所有行:# 方式1:重新赋值为空DataFrame df2 = df2.iloc[0:0] # 方式2:原地清空 # df2.drop(df2.index, inplace=True)
完整代码示例:
假设初始数据已加载为df1和df2,完整执行代码如下:
import pandas as pd # 模拟初始全量数据df1 data1 = { 'X_coordinate': [415541.1, 415546.12, 415551.096], 'Y-Coordinate': [7250068.501, 7250079.97, 7250091.44], 'Record_Flag': ['I', 'I', 'I'] } df1 = pd.DataFrame(data1) # 模拟增量数据df2 data2 = { 'X_Coordinate': [415557.59, 415562.56, 415567.53], 'Y_Coordinate': [7250075.006, 7250086.473, 7250097.944] } df2 = pd.DataFrame(data2) # 步骤1:更新df1的Record_Flag为U df1['Record_Flag'] = 'U' # 步骤2:处理df2的列名并添加Record_Flag df2 = df2.rename(columns={'X_Coordinate': 'X_coordinate', 'Y_Coordinate': 'Y-Coordinate'}) df2['Record_Flag'] = 'I' # 步骤3:合并数据 df1 = pd.concat([df1, df2], ignore_index=True) # 步骤4:截断df2 df2 = df2.iloc[0:0] # 查看最终结果 print(df1)
执行后输出的df1即为期望的最终DataFrame。
内容的提问来源于stack exchange,提问作者Soumya Hembram
相关产品推荐
相关产品推荐

