Как применить функцию панды на основе значения другого столбца? - PullRequest
0 голосов
/ 25 октября 2018

У меня есть pandas dataframe с двумя столбцами, один с некоторыми строковыми значениями, а другой с пустыми dicts:

ColA ColB
True  {}
False {}
True  {}
True  {}
False {}
False {}
True  {}

У меня есть функция, которая обновляет dict с некоторыми другими значениями:

def update_dict(a):
    return a.update({"VAL":["yes"]})

Как я могу применить вышеуказанную функцию ко всем ячейкам ColB, у которых рядом с ними есть «ложные» строки в их ColA?:

ColA ColB
True  {}
False {"VAL":["yes"]}
True  {}
True  {}
False {"VAL":["yes"]}
False {"VAL":["yes"]}
True  {}

Я знаю, что в пандах вы можете использоватьфункция или applymap.Тем не менее, я не знаю, как я могу сделать это на основе значения предыдущего столбца.

1 Ответ

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

Возможно, но работа с dict в значениях столбцов не рекомендуется, поскольку потеряны все векторизованные функции:

def update_dict(a):
    a.update({"VAL":["yes"]})
    return a

df['ColB'] = [update_dict(j) if i == 'False' else j for i, j in zip(df['ColA'], df['ColB'])]
print (df)
    ColA              ColB
0   True                {}
1  False  {'VAL': ['yes']}
2   True                {}
3   True                {}
4  False  {'VAL': ['yes']}
5  False  {'VAL': ['yes']}
6   True                {}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...