Панды - фильтрация столбца по значению - PullRequest
0 голосов
/ 13 ноября 2018

У меня есть Pandas Dataframe, который состоит из двух столбцов, как показано ниже:помогите, спасибо

1 Ответ

0 голосов
/ 13 ноября 2018

Используйте понимание списка с get для работы со строками, а также, если не существует, ключ Name в некоторой строке для логической маски и фильтрацию по boolean indexing:

df = df[[x.get('Name') == 'Product 1' for x in df['attribute']]]

Или:

df = df[df['attribute'].apply(lambda x: x.get('Name')) == 'Product 1']
#alternative, working if all Name exist in each row
#df = df[df['attribute'].apply(lambda x: x['Name']) == 'Product 1']

print (df)
  name                                          attribute
0  abc  {'attributes': {'type': 'RecordType', 'url': '...

РЕДАКТИРОВАТЬ:

Если хотите также фильтровать по вложенным словарям:

df = df[[x.get('attributes').get('type') == 'RecordType' for x in df['attribute']]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...