【问题标题】:Get an element from column and if equal to something put it in another column in python从列中获取一个元素,如果等于某个元素,则将其放在 python 的另一列中
【发布时间】:2021-05-10 12:00:35
【问题描述】:

假设我有一个这样的数据框:

        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 个元素是否等于 Test 1 和 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_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 的文件夹

【问题讨论】:

    标签: python python-3.x pandas list dataframe


    【解决方案1】:

    您可以在以下位置使用 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-22
      • 1970-01-01
      • 2019-07-20
      • 1970-01-01
      相关资源
      最近更新 更多