0
To_Find_lst = ["Q1","Q2","Q3","Q4","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY","SUNDAY"]

DF:

   A                 B 
Q1_MONDAY            55
Q3_LA                87
WEDNESDAY_FRIDAY     67

I want to create a new column that will identify values from the list in col A and create a column C with the values it identified.

   A                 B         C
Q1_MONDAY            55.     Q1, MONDAY
Q3_LA                87.     Q3
WEDNESDAY_FRIDAY     67.     WEDNESDAY, FRIDAY
Mayank Porwal
  • 33,470
  • 8
  • 37
  • 58

2 Answers2

0
df['C'] = df.A.transform(lambda x: ','.join([i for i in x.split('_') if i in To_Find_lst]))

Output

                  A   B                 C
0         Q1_MONDAY  55         Q1,MONDAY
1             Q3_LA  87                Q3
2  WEDNESDAY_FRIDAY  67  WEDNESDAY,FRIDAY
Chris
  • 15,819
  • 3
  • 24
  • 37
0

try str.extractall

lst = '|'.join(To_Find_lst )
#'Q1|Q2|Q3|Q4|MONDAY|TUESDAY|WEDNESDAY|THURSDAY|FRIDAY|SATURDAY|SUNDAY'

df['C'] = df['A'].str.extractall(f'({lst})').groupby(level=0).agg(','.join)

print(df)

                  A   B                 C
0         Q1_MONDAY  55         Q1,MONDAY
1             Q3_LA  87                Q3
2  WEDNESDAY_FRIDAY  67  WEDNESDAY,FRIDAY
Umar.H
  • 22,559
  • 7
  • 39
  • 74