Сначала игнорируя записи nan
, мой подход будет следующим:
df['WR Count'] = df.WR.str.replace(' ', '').str.split(',').apply(Counter)
# WR WR Count
# UC
# V001 A, B, C, nan, A, C, D {'A': 2, 'B': 1, 'C': 2, 'nan': 1, 'D': 1}
# C001 nan, C, D, A, nan, A {'nan': 2, 'C': 1, 'D': 1, 'A': 2}
# C002 C, B, B, A, A, A {'C': 1, 'B': 2, 'A': 3}
# C003 A, C, A, C, B, nan {'A': 2, 'C': 2, 'B': 1, 'nan': 1}
Обратите внимание, что если вы уверены, что разделитель всегда ', '
, то вы можетежестко закодируйте его, что приводит к более короткой команде:
df['WR Count'] = df.WR.str.split(', ').apply(Counter)