<pre><code>import pandas as pd
def extract_value(s):
regex = re.search(r'(^.+?)-.+?(\d+(?:\.\d+)?T)', s)
if regex:
first_word = regex.group(1)
code = regex.group(2)
return f'{first_word} {code}'
return s
df = pd.DataFrame([['Hello-HEL-HE-A6123-123A-12T_TYPE-v.A'],
['Hello-HEL-HE-A6123-123A-12T_TYPE-v.E'],
['Hello-HEL-HE-A6123-123A-50T_TYPE-v.C'],
['Hello-HEL-HE-A6123-123A-50T_TYPE-v.A'],
['Happy-HAP-HA-R650-570A-90T_version-v.A'],
['Kind-KIN-KI-T490-NET_14T-A.0'],
['Kind-KIN-KI-T490-NET_14T-A.0'],
['AY14.5-fyy-FY-R770-256G-6.4T-R1-v.A'],
['AY14.5-fyy-FY-R770-256G-6.4T-R1-v.A']])
df.columns = ['Type']
df['Type'] = df['Type'].apply(lambda x: extract_value(x))
df2 = (df['Type'].value_counts(normalize=True)*100).to_frame('%')
print(df2.rename_axis(index='Type').reset_index())
</code></pre>
<p>输出:</p>
<pre><code> Type %
0 AY14.5 6.4T 22.222222
1 Kind 14T 22.222222
2 Hello 50T 22.222222
3 Hello 12T 22.222222
4 Happy 90T 11.111111
</code></pre>