Панды: Проверьте, существует ли столбец в df из списка столбцов - PullRequest
0 голосов
/ 22 октября 2018

Цель здесь - найти столбцы, которые не существуют в df, и создать их с нулевыми значениями.

У меня есть список имен столбцов, как показано ниже:

column_list = ('column_1', 'column_2', 'column_3')

Когда япопробуйте проверить, существует ли столбец, он выдает True только для тех столбцов, которые существуют и не получают значение False для тех, которые отсутствуют.

for column in column_list:
    print df.columns.isin(column_list).any()

В PySpark я могу добиться этого с помощью приведенного ниже:

for column in column_list:
        if not column in df.columns:
            df = df.withColumn(column, lit(''))

Как мне достичь того же, используя Панд?

Ответы [ 2 ]

0 голосов
/ 22 октября 2018

Использование np.isin, assign и распаковка kwargs

s = np.isin(column_list, df.columns)
df = df.assign(**{k:None for k in np.array(column_list)[~s]})
0 голосов
/ 22 октября 2018

Вот как бы я подошел:

import numpy as np

for col in column_list:
    if col not in df.columns:
        df[col] = np.nan
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...