按行中的特定值筛选DataFrame列



我有一个关于在Python中过滤Dataframe的可能性的小问题。Dataframe具有包含字符串和整数的各种行。感兴趣的行被称为"数值",它包含从1到30的数字,有时包含多个条目(即不仅是"1",还有"1+2"或"1;2"(。我想筛选行中包含数字"5"的列。我尝试了各种代码行,如

df[df["numbervalues"].astype(str(.str.contains("5"(]

df[df["numbervalues"]=="5"]

问题是第一个选项过于包容/宽泛,因为它还包括我不想选择的"15"等数字。然而,第二个选项过于选择性,因为它不能捕获具有多个值(如"5+3"或"0"(的行;5.9〃;我还考虑过删除"15"one_answers"25"等值以排除这些集合,但有些行包含"5+15",因此我也会从数据集中删除相关值。非常感谢您的帮助。

您可以使用regex来实现这一点:

df.loc[df["numbervalues"].str.contains(r'b5b')]

最新更新