我的DataFrame中有一列流感病毒名称 . 以下是目前名称格式的代表性样本:
-
(A / Egypt / 84/2001(H1N2))
-
A / Brazil / 1759/2004(H3N2)
-
A / Argentina / 126/2004
我只对从菌株名称中取出A / COUNTRY / NUMBER / YEAR感兴趣,例如 A/Brazil/1759/2004 . 我试过做:
df['Strain Name'] = df['Original Name'].str.split("(")
但是,如果我尝试访问 .str[0]
,那么我会错过案例#1 . 如果我做 .str[1]
,我会错过案例2和3 .
是否有适用于所有三种情况的解决方案?或者有没有办法在字符串拆分中应用条件,而不迭代数据框中的每一行?
1 回答
所以,根据EdChum的建议,我会在这里发布我的答案 .
解决此问题所需的最小数据框:
仅获取应变名称的代码,括号内没有括号或其他内容:
此代码适用于此处拼写的特定情况,因为诀窍是隔离的"strain name"是在通过左括号(“
(
”)值分割后的最长字符串 .