Python查找一列中字符出现频率

我有一个dataframe,其中一列为

number
CN102A FB
AS9120 DS; 8T12A FA
……
CN102A FB; AT12A FB

我想得到这列每行的如下信息:

  1. "; "分割的字符串数量
  2. 字符串开头为CN或者AT的数量
  3. 字符串含有FB的数量

最后将信息组成新的dataframe,拼在原来的后面:

"; "分割开头为CN或者AT含有FB
111
200
………………
222

我现在只能写出前两个,且不会拼接为新的dataframe。求解!

for row in range(len(df)):
    temp_list = df.loc[row, "number"].split(";  ")
    temp_list2 =  temp_list .value_counts(list(map(lambda x: x[:2], temp_list)))

为什么最后还要拼接为新的dataframe?直接用下标运算符设置值不就行了吗:

df['"; "分割'] = df['number'].str.count('; ') + 1
df['开头为CN或者AT'] = df['number'].str.count('^(CN|AT)')
df['含有FB'] = df['number'].str.count('FB')