Генерация случайной выборки из файла csv, пропуская строки с определенными значениями

#python #pandas #csv #for-loop #if-statement

#python #pandas #csv #for-цикл #if-оператор

Вопрос:

Я пытаюсь сгенерировать случайную подвыборку из 5000 строк из файла .csv, содержащего десятки тысяч строк. Df содержит два столбца: «JPG» и «NAME».

Я сгенерировал случайную подвыборку со следующим кодом:

 import pandas as pd

file = pd.read_csv(r'C:filepathdata.csv', usecols = [7, 8])

sample = file.sample(n=5000)
print(sample)
  

Однако теперь я хочу сделать то же самое, но с включением цикла for, который может делать это, пропуская любые строки со строкой ‘t3’ в столбце ‘NAME’.

Вот где я нахожусь, но пытаюсь заставить его работать:

 import pandas as pd

file = pd.read_csv(r'C:filepathdata.csv', usecols = [7, 8])

sample = file.sample(n=5000)
for num in sample:
    if sample.loc[sample['NAME'] == 't3']:
        continue
print(sample)
  

Любая помощь по этому вопросу была бы весьма признательна.

Спасибо, R

Ответ №1:

почему бы вам не отфильтровать все строки с NAME помощью t3 заранее? Нравится:

 import pandas as pd

file = pd.read_csv(r'C:filepathdata.csv', usecols = [7, 8])
file_without_t3 = file[file['NAME'] != 't3']

sample = file_without_t3.sample(n=5000)
print(sample)
  

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

1. Очень хороший момент! Я переполнил это и запутался в процессе. Спасибо за помощь, Чжао! 🙂