比较两个df列名并选择共同的列

问题描述 投票:0回答:1

我正在尝试将

dictionary_of_columns
附加到两个 df 共有的列。

我的代码:

list_of_columns = []
for column in dfUpdates.schema:
    list_of_columns.append(column.jsonValue()["name"].upper())

dictionary_of_columns = {}
dictionary_of_columns['BK_COLUMNS'] = []
dictionary_of_columns['COLUMNS'] = []
for row in df_metadata.dropDuplicates(['COLUMN_NAME', 'KeyType']).collect():
    if row.KeyType == 'PRIMARY KEY' and row.COLUMN_NAME.upper() in list_of_columns:
        dictionary_of_columns['BK_COLUMNS'].append(row.COLUMN_NAME.upper())
    elif row.KeyType  != 'PRIMARY KEY' and row.COLUMN_NAME.upper() in list_of_columns:
        dictionary_of_columns['COLUMNS'].append(row.COLUMN_NAME.upper())

但是当我不匹配时。

dict_of_columns
里面有更多的专栏。

python dataframe multiple-columns
1个回答
0
投票

伪代码将如下所示。我创建集合作为两个数据框中的列,然后取出它们共有的元素。

你可以调整它以满足你的需要,因为我看到你也过滤主键。

dfUpdates_cols = set(dfUpdates.columns)
df_metadata_cols = set(df_metadata.columns)

print(dfUpdates_cols & df_metadata_cols)
© www.soinside.com 2019 - 2024. All rights reserved.