我有一个名为
要查找的部分路径是:
但是这会导致
你有没有关于如何搜索DataFrame列的确切部分字符串匹配的任何建议?
谢谢!
test
的DataFrame,其中包含一个包含文件路径的列,我想使用部分路径过滤数据。 full_path
0 C:\data\Data Files\BER\figure1.png
1 C:\data\Data Files\BER\figure2.png
2 C:\data\Previous\Error\summary.png
3 C:\data\Data Files\Val\1x2.png
4 C:\data\Data Files\Val\2x2.png
5 C:\data\Microscopy\defect.png
要查找的部分路径是:
ex = 'C:\\data\\Microscopy'
我尝试过使用 str.contains
,但是:
test.full_path.str.contains(ex)
0 False
1 False
2 False
3 False
4 False
5 False
我本来期望在索引5处得到一个值为True
的结果。一开始我以为问题可能出在路径字符串上,因为转义字符的差异导致它们实际上并不匹配,但是:
ex in test.full_path.iloc[5]
相等于True
。经过一番搜索,我认为str.contains
的参数应该是一个正则表达式,所以也许路径中的“\”会导致问题?
我还尝试了以下方法:
test.full_path.apply(lambda x: ex in x)
但是这会导致
NameError: name 'ex' is not defined
。这些数据框可能有很多行,因此我也担心 apply
函数可能不太有效率。你有没有关于如何搜索DataFrame列的确切部分字符串匹配的任何建议?
谢谢!