Получить имя столбца, если значение существует в ячейке - PullRequest
0 голосов
/ 04 августа 2020

Я получил следующий лист Excel:

Лист Excel

Перебирая каждую из строк, мне нужно извлечь имя столбца везде, где встречается значение 'x'. Как я мог это сделать? Нет возможности «получить имя столбца» на основе ячейки.

Вот мой код:

df = pd.read_excel("/Users/farmaceut/Sites/journals_database/journals.xlsx", header=[2, 3])
df = df.replace(np.nan, '', regex=True)
for col in df.columns[8:]:
...Domain.objects.update_or_create(domain_name=col[0])
for index, col in df.iterrows():
......journal = Journal.objects.update_or_create(title=col[1], abbreviation=col[4], impact_factor=0,ministerial_points=col[7])
for cell in col[8:]:
...if cell == 'x':
......????

1 Ответ

1 голос
/ 04 августа 2020

Просмотрите приведенный ниже Код, чтобы найти индексы и столбцы, в которых присутствует символ a. Замените a символом, который вы хотите найти, и вы получите индексы, а также столбец, в котором присутствует символ.

df=pd.DataFrame({"A":['fdsf','dfsa'],"B":[1,2]})
indices=[]
columns=[]
for column in df.columns:
    values=list(df[df[column].astype(str).str.contains('a')].index)
    if(len(values)>0):
        indices.append(values)
        columns.append(column)

В этом случае вывод будет

columns=['A'] # Column where 'a' is found
indices=[[1]] # Index where 'a' is found
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...