как определить, имеет ли какой-либо столбец определенное значение - PullRequest
0 голосов
/ 04 октября 2018

У меня есть кадр данных, который выглядит следующим образом:

ID           Column1            Column2             Column3
1            cats                 dog                bird
2            dog                 elephant           tiger
3            leopard             monkey             cat

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

   ID           Column1            Column2             Column3  Column4
    1            cats                 dog                bird      Yes
    2            dog                 elephant           tiger     No
    3            leopard             monkey             cat       Yes

Я хотел бы сделать это без индивидуальной оценки каждого столбца, поскольку в реальном наборе данных много столбцов.

1 Ответ

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

Следующие действия помогут вам:

df['Column4'] = np.where((df.astype(np.object)=='cat').any(1), 'Yes', 'No')

Рабочий пример:

>>> import pandas as pd
>>> import numpy as np
>>> d = {'ID': [1, 2, 3], 'Column1': ['cat', 'dog', 'leopard'], 'Column2': ['dog', 'elephant', 'monkey'], 'Column3': ['bird', 'tiger', 'cat']}
>>> df = pd.DataFrame(data=d)
>>> df
   Column1   Column2 Column3  ID
0      cat       dog    bird   1
1      dog  elephant   tiger   2
2  leopard    monkey     cat   3
>>> df['Column4'] = np.where((df.astype(np.object)=='cat').any(1), 'Yes', 'No')
>>> df
   Column1   Column2 Column3  ID Column4
0      cat       dog    bird   1     Yes
1      dog  elephant   tiger   2      No
2  leopard    monkey     cat   3     Yes

РЕДАКТИРОВАТЬ: В случае, если вы хотите проверить, если какой-либо изстолбцы содержат конкретную строку, которую вы можете использовать следующим образом:

df['Column4'] = df.apply(lambda r: r.str.contains('cat', case=False).any(), axis=1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...