我有一个Dataframe,它的列中的值由分号分隔,例如。Patient1_Control2;Patient1_Patient3;Control1_Control3。但是,我只想要带有PatientX_ControlX或ControlX_PatientX的行。我不想要ControlX_ControlX或PatientX_PatientX。我想到了filter(regex = '...')
方法,但这并不能很好地完成工作。我希望通过正则表达式过滤数据帧,其中我可以使用正则表达式PatientX_ControlX或ControlX_PatientX (x表示随机字符串)。有什么方法可以做到这一点吗?提前谢谢你了。我还在学习如何编写代码,所以每一个技巧都会很棒。如果你有任何资源可以让我了解更多关于正则表达式的知识,那就太棒了!
发布于 2021-10-19 01:38:51
筛选列data
,使其不包含相关值-
df[~(df["data"].str.contains('Patient\d+_Control\d+|Control\d+_Patient\d+'))]
对于以下数据帧-
df = pd.DataFrame({"data":["Patient1_Control2", "Patient1_Patient3", "Control1_Patient3", "Control1_Control3"]})
df[~(df["data"].str.contains('Patient\d+_Control\d+|Control\d+_Patient\d+'))]
输出是-
data
1 Patient1_Patient3
3 Control1_Control3
https://stackoverflow.com/questions/69628169
复制相似问题