Как вытащить из CSV файла только нужные данные?
Дан большой CSV файл который, в большинстве случаев, заполнен однотипными данными, т.е.:
time,mouse_key
2021-02-08T13:53:55.693,"{}"
2021-02-08T13:53:55.696,"{}"
2021-02-08T13:53:55.701,"{}"
2021-02-08T13:53:55.709,"{}"
2021-02-08T13:53:55.709,"{}"
2021-02-08T13:53:55.713,"{}"
2021-02-08T13:53:55.717,"{}"
# и т.д.
2021-02-08T13:53:57.013,"{}"
2021-02-08T13:53:57.015,"{}"
2021-02-08T13:53:57.020,"{}"
2021-02-08T13:53:57.027,"{'LEFT'}"
2021-02-08T13:53:57.030,"{'LEFT'}"
2021-02-08T13:53:57.034,"{'LEFT'}"
2021-02-08T13:53:57.042,"{'LEFT'}"
2021-02-08T13:53:57.042,"{'LEFT'}"
2021-02-08T13:53:57.046,"{'LEFT'}"
2021-02-08T13:53:57.051,"{'LEFT'}"
2021-02-08T13:53:57.055,"{'LEFT'}"
2021-02-08T13:53:57.059,"{'LEFT'}"
2021-02-08T13:53:57.064,"{'LEFT'}"
из этого файла нужно вытащить и поместить в таблицу только не пустые значения mouse_key и время возле этого mouse_key
Ответы (1 шт):
Автор решения: gil9red
→ Ссылка
Считывайте данные через модуль csv и при обработке смотрите на значение второго элемента, если там не "{}", значит сейчас нужные данные
Попробуйте:
import csv
with open('input.csv') as f:
csv_reader = csv.reader(f)
# Пропуск первой строки -- заголовка
next(csv_reader)
for row in csv_reader:
time, mouse_key = row
if mouse_key == '{}':
continue
print(row)
Результат:
['2021-02-08T13:53:57.027', "{'LEFT'}"]
['2021-02-08T13:53:57.030', "{'LEFT'}"]
['2021-02-08T13:53:57.034', "{'LEFT'}"]
['2021-02-08T13:53:57.042', "{'LEFT'}"]
['2021-02-08T13:53:57.042', "{'LEFT'}"]
['2021-02-08T13:53:57.046', "{'LEFT'}"]
['2021-02-08T13:53:57.051', "{'LEFT'}"]
['2021-02-08T13:53:57.055', "{'LEFT'}"]
['2021-02-08T13:53:57.059', "{'LEFT'}"]
['2021-02-08T13:53:57.064', "{'LEFT'}"]