Загрузка только строк в Dataframe На основе поиска подстроки в строке из неструктурированного формата - PullRequest
0 голосов
/ 23 марта 2020

У меня есть неструктурированные наборы данных, которые используют устаревшую программу Java, которая в настоящее время загружается на основе указанной строки c в строке, разделенной запятой. Например, если строка содержит «PAT» в одном из столбцов, то каждая строка, содержащая эту строку, загружается в столбец в базе данных SQL. Это происходит для нескольких разных строк.

Что делает эту уникальность, так это то, что каждый тип строки имеет различное количество «столбцов» или различное количество разделенных полей. Я переписываю эту программу в Python и пытаюсь выполнить ETA для набора данных для проверки.

По сути, сейчас я хочу выполнить поиск по файлу для указанной строки c и загрузить все строки, которые содержат эту строку в кадре данных в pandas. Из-за разного количества столбцов в строках я не могу загрузить файл в информационный кадр, а затем отфильтровать его. Можно ли выполнить предварительный поиск строки перед загрузкой в ​​фрейм данных?

Пример даты:

123456,20010101,14:03:55.425,FAN,*,*,*
123456,20010101,14:03:55.425,PAT,0.00,0.00,0.00
123456,20010101,14:03:55.425,CON,*,*,*
123456,20010101,14:03:55.425,TRUNK,0.00,0.00,0.00,0.00,0.00
123456,20010101,14:03:55.462,FAN,*,*,*
123456,20010101,14:03:55.462,PAT,0.00,0.00,0.00
123456,20010101,14:03:55.462,CON,*,*,*

1 Ответ

0 голосов
/ 23 марта 2020

Ключевое слово "in" отлично подходит для тестирования, если что-то находится в наборе данных. Вот пример использования встроенного модуля CSV.

import pandas
import csv

with open("data.csv") as csv_file:
    reader = csv.reader(csv_file)

    keyword = "PAT"
    keyword_dataframes = pandas.DataFrame([row for row in reader if keyword in row])

    print(keyword_dataframes)

Вывод

        0         1             2    3     4     5     6
0  123456  20010101  14:03:55.425  PAT  0.00  0.00  0.00
1  123456  20010101  14:03:55.462  PAT  0.00  0.00  0.00
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...