从列中获取一个元素,如果该元素等于某个元素,则将其放入python中的另一列中

从列中获取一个元素,如果该元素等于某个元素,则将其放入python中的另一列中,python,python-3.x,pandas,list,dataframe,Python,Python 3.x,Pandas,List,Dataframe,假设我有这样一个数据帧: full_path 0 C:\Users\User\Desktop\Test1\1.txt 1 C:\Users\User\Desktop\ABC\1.txt 2 C:\Users\User\Desktop\Test2\1.txt 3 C:\Users\User\Desktop\Test1\1.txt 4 C:\Users\User\Desktop\ABCD\1.txt 5 C:

假设我有这样一个数据帧:

        full_path                     
0   C:\Users\User\Desktop\Test1\1.txt 
1   C:\Users\User\Desktop\ABC\1.txt 
2   C:\Users\User\Desktop\Test2\1.txt 
3   C:\Users\User\Desktop\Test1\1.txt 
4   C:\Users\User\Desktop\ABCD\1.txt 
5   C:\Users\User\Desktop\Test2\1.txt 
我想检查路径的第5个元素是否等于test1和Test2,并创建如下列:

        full_path                             folder 
0   C:\Users\User\Desktop\Test1\1.txt         Test1
1   C:\Users\User\Desktop\ABC\1.txt          
2   C:\Users\User\Desktop\Test2\1.txt         Test2
3   C:\Users\User\Desktop\Test1\1.txt         Test1
4   C:\Users\User\Desktop\ABCD\1.txt          
5   C:\Users\User\Desktop\Test2\1.txt         Test2
我尝试了这个命令
df['folder']=df[“full\u path”].str.rsplit(“\\”).str[4]
,但它给出了以下输出:

        full_path                             folder 
0   C:\Users\User\Desktop\Test1\1.txt         Test1
1   C:\Users\User\Desktop\ABC\1.txt           ABC
2   C:\Users\User\Desktop\Test2\1.txt         Test2
3   C:\Users\User\Desktop\Test1\1.txt         Test1
4   C:\Users\User\Desktop\ABCD\1.txt          ABCD 
5   C:\Users\User\Desktop\Test2\1.txt         Test2

我不希望在文件夹列中显示不是Test1和Test2的文件夹

您可以在以下位置使用Numpy:

import numpy as np

df['folder'] = np.where(df['full_path'].str.contains('Test'),
                        df['full_path'].str.rsplit('\\').str[4],
                        np.nan
                       )
输出:

                            full_path    folder
0   C:\Users\User\Desktop\Test1\1.txt     Test1
1     C:\Users\User\Desktop\ABC\1.txt       NaN
2   C:\Users\User\Desktop\Test2\1.txt     Test2
3   C:\Users\User\Desktop\Test1\1.txt     Test1
4    C:\Users\User\Desktop\ABCD\1.txt       NaN
5   C:\Users\User\Desktop\Test2\1.txt     Test2