Удалите данные, если отсутствует столбец

#python #pandas

Вопрос:

У меня есть 500 файлов tsv в папке, это выглядит так:

 #Text=Identifying atypical objects is one of the traditional topics in machine learning.
1-1 2-13    Identifying Problem[1]  
1-2 14-22   atypical    Problem[1]  
1-3 23-30   objects Problem[1]  
1-4 31-33   is  _   
1-5 34-37   one _   
1-6 38-40   of  _   
1-7 41-44   the _   
1-8 45-56   traditional _   
1-9 57-63   topics  _   
1-10    64-66   in  _   
...
 

Я удалил комментарий #и первые две колонки, используя следующий код:

 import os
import pandas as pd

path = "All_TSV_Files"
files = [file for file in os.listdir(path) if file.endswith(".tsv")]

c=0
for file in files:
    df = pd.read_csv(os.path.join(path, file), 
                     comment='#', 
                     header=None, 
                     sep='t',engine='python',error_bad_lines=False)
    
    df.drop(df.columns[[0, 1]], axis=1, inplace=True)
    
    df.to_csv(os.path.join(path, f'admin{c}.txt'),index=False,header=False)
    
    c =1
 

моя проблема в том, что в некоторых файлах tsv отсутствует столбец тегов, выглядит так :

 1-1 2-13    Identifying 
1-2 14-22   atypical    
1-3 23-30   objects 
1-4 31-33   is  
1-5 34-37   one 
1-6 38-40   of  
1-7 41-44   the 
1-8 45-56   traditional 
1-9 57-63   topics  
1-10    64-66   in  
 

как я могу удалить файлы, в которых отсутствует столбец?

Комментарии:

1. Только напишите csv, если len(df.columns)>3 ?

Ответ №1:

Напишите простое условие, чтобы пропустить текущий файл

 if 'tags' not in df.columns:
    continue