pandas, excel. Поиск значений 3-х столбцов в другом столбце
Здраствуйте, нужно проверить имеет ли в себе строка столбца "Summary" строки столбцов 'PS Calendar Frequency','IFS Frequency','Amos..'. В столбце "Summary" между данными могут быть другие символи, могут быть пропущенные данные, так же может отличаться последний символ столбца "IFS Frequency", тоесть вместо PM00678A- PM00678B. Буду рад любой помощи. также возможно что записи будут идти не подряд.
dataframe = {
'PS Calendar Frequency': ['ELEC', 'ELEC','SAFETY','SAFETY','CARGO','CARGO'],
'IFS Frequency': ['PM00187A','PM00678A','PM00149A','PM00152f','PM05A','PM00169f'],
'AMOS Responsible Disc.': ['Electrical','Electrical','Safety','Safety','Cargo','Cargo'],
'Summary': ['eeELECPSSSSSSM00187BElectrical','ELECPSSM00678BElectrical','\'\'\'SAFETSSSSYPM00149A Safety','','CARQSGOPM00155QCargo','CARGOPM00169fCargo'],
'Result':['False','TRUE','TRUE','False','TRUE','TRUE']
}
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
Мне не удалось добиться именно такого результата, видимо, я не до конца понял принцип. Но делается это примерно таким способом:
import pandas as pd
dataframe = {
'PS Calendar Frequency': ['ELEC', 'ELEC','SAFETY','SAFETY','CARGO','CARGO'],
'IFS Frequency': ['PM00187A','PM00678A','PM00149A','PM00152f','PM05A','PM00169f'],
'AMOS Responsible Disc.': ['Electrical','Electrical','Safety','Safety','Cargo','Cargo'],
'Summary': ['eeELECPSSSSSSM00187BElectrical','ELECPSSM00678BElectrical','\'\'\'SAFETSSSSYPM00149A Safety','','CARQSGOPM00155QCargo','CARGOPM00169fCargo'],
'Result':['False','TRUE','TRUE','False','TRUE','TRUE']
}
df = pd.DataFrame(dataframe)
def check_df(x):
return x['Summary'].endswith(x['AMOS Responsible Disc.']) and \
x['PS Calendar Frequency'][:3] in x['Summary'] and \
x['IFS Frequency'][:-1] in x['Summary']
#df['Result'] =
df.apply(check_df, axis=1)
Вывод:
0 False
1 False
2 True
3 False
4 False
5 True
dtype: bool
