有两个数据帧
df1
->OrgID, location, Address, State
——它是增量表
df2
->OrgID, location, Address, State, Active, Seq_Number
——即createOrReplaceTempViewtable
在df2
中有两个附加列Active
、Seq_Number
。
- 如何获取新列的数据类型
- 如何将新列添加到现有的增量表中并更新值
尝试了以下操作:
将数据帧转换为pandaDF并使用它,从而在Index
对象中获得新列。
df_new_columns = df1.columns.difference(df2.columns)
new = [ ]
if len(df_new_columns.tolist()) != 0:
for column in df_new_columns.tolist():
column_name = column
new.append(column)
试试这个:
delta_table = pd.concat([delta_table, createOrReplaceTempViewtable[['Active', 'Seq_Number']]])
如果在连接原始表中缺失的表时不想命名任何重复的表,可以执行以下操作:
import pandas as pd
a = [{'A': 3, 'B': 5, 'C': 3, 'D': 2},{'A': 2, 'B': 4, 'C': 3, 'D': 9}]
df1 = pd.DataFrame(a)
b = [{'F': 0, 'M': 4, 'B': 2, 'C': 8 },{'F': 2, 'M': 4, 'B': 3, 'C': 9}]
df2 = pd.DataFrame(b)
df_delta = df2.columns.difference(df1.columns)
print(pd.concat([df1,df2]).T.drop_duplicates().T)
它给出:
A B C D F M
0 3.0 5.0 3.0 2.0 NaN NaN
1 2.0 4.0 3.0 9.0 NaN NaN
0 NaN 2.0 8.0 NaN 0.0 4.0
1 NaN 3.0 9.0 NaN 2.0 4.0
和
Index(['F', 'M'], dtype='object')