小编end*_*xen的帖子

Pandas str.contains 用于部分字符串的精确匹配

我有一个 DataFrame (我将其称为test),其中有一列包含文件路径,我想使用部分路径来过滤数据。

                              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
Run Code Online (Sandbox Code Playgroud)

查找的部分路径是:

ex = 'C:\\data\\Microscopy'
Run Code Online (Sandbox Code Playgroud)

我已经尝试过了str.contains,但是,

test.full_path.str.contains(ex)

0    False
1    False
2    False
3    False
4    False
5    False
Run Code Online (Sandbox Code Playgroud)

我预计True索引 5 的值为 5。起初我认为问题可能在于路径字符串由于与转义字符的差异而实际上不匹配,但是:

ex in test.full_path.iloc[5]
Run Code Online (Sandbox Code Playgroud)

等于True。经过一番挖掘,我认为参数应该str.contains是正则表达式,所以也许部分路径中的“\”把事情搞砸了?

我也尝试过:

test.full_path.apply(lambda x: ex in x)
Run Code Online (Sandbox Code Playgroud)

但这给出了NameError: name 'ex' is not defined. 这些数据帧中可能有很多行,所以我还担心该apply函数可能不是很有效。

关于如何在 DataFrame 列中搜索精确的部分字符串匹配有什么建议吗?

谢谢!

python regex contains pandas

6
推荐指数
1
解决办法
2万
查看次数

pandas DataFrame 通过多列值重塑

我试图将自己从 JMP 中解放出来进行数据分析,但无法确定与 JMP 的拆分列函数等效的 Pandas 。我从以下 DataFrame 开始:

In [1]: df = pd.DataFrame({'Level0': [0,0,0,0,0,0,1,1,1,1,1,1], 'Level1': [0,1,0,1,0,1,0,1,0,1,0,1], 'Vals': [1,3,2,4,1,6,7,5,3,3,2,8]})
In [2]: df
Out[2]:
    Level0  Level1  Vals
0        0       0     1
1        0       1     3
2        0       0     2
3        0       1     4
4        0       0     1
5        0       1     6
6        1       0     7
7        1       1     5
8        1       0     3
9        1       1     3
10       1       0     2
11       1       1     8
Run Code Online (Sandbox Code Playgroud)

我可以使用该pivot_table函数处理 JMP …

python pandas

5
推荐指数
1
解决办法
586
查看次数

标签 统计

pandas ×2

python ×2

contains ×1

regex ×1