Корреляция между двумя листами Excel с использованием Python - PullRequest
0 голосов
/ 08 апреля 2020

Я пытаюсь получить данные из листа Sheet2, если значение листа1 соответствует листу 2.

Например:

sheet1:

name    school
Rahul   DPS
Seema   KV

sheet2:

school_name profile       color       subject
DPS           1      orange,blue        math
DPS           2      red,purple        english
KV            1        yellow          science

, если в школе sheet1 совпадает с sheet2 school_name, тогда взять все данные ie. профиль, цвет, предмет.

Например. DPS листа1 соответствует DPS листа2, чем вывод:

name= Rahul
school:{DPS:[{'profile':1,'color':orange,blue,'subject':math},{'profile':2,'color':red,purple,'subject':english}]}

1 Ответ

0 голосов
/ 08 апреля 2020

Поскольку вы не сообщили нам правила имен столбцов Excel, я предполагаю, что они неструктурированы и могут изменяться,

, чтобы получить соответствия между этими двумя кадрами данных, мы можем использовать серию stack() и логическое индексирование

, если это ваш второй кадр данных;

print(df2)

  school_name  profile        color  subject
0         DPS        1  orange,blue     math
1         DPS        2   red,purple  english
2          KV        1       yellow  science
3         RDM        2          red  history


s = df2.stack().isin(df1.stack()).unstack()
df3 = df2.loc[s[s.eq(True)].dropna(how='all').index]

print(df3)

  school_name  profile        color  subject
0         DPS        1  orange,blue     math
1         DPS        2   red,purple  english
2          KV        1       yellow  science

, то вы можете запустить групповые операции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...