Size: a a a

Python для анализа данных

2021 October 18

h

helby in Python для анализа данных
можете скинуть ваши данные, хотя бы ненастоящие, но по структуре нужные?
источник
2021 October 19

P

PAWPAW in Python для анализа данных
источник

IS

Ilya Shutov in Python для анализа данных
тут данные принципиально неструктурированные.
никакая либа или трансформация не помогут.
надо парсер многострочных записей писать.


ничего сложного, сами по себе строчки структурированные + есть якорные фразы типа "склад" или "покупатель".

M&S ??
источник

IS

Ilya Shutov in Python для анализа данных
как обычно, тут тишина.

я за пять минут накидал прототипчик.
вариантов решения масса.
взял самый быстрый.

но на R, уж не обессудьте.
идеи все там прозрачные, сами на питон перекладывайте.
"10" содержательных строк, не велик труд.

{r}
# считываем сырье и формируем предварительную табличку на разбор
raw_dt <- here::here("data", "etl", "m_and_s.zip") %>%
 readr::read_lines(skip = 2) %>%
 tibble::enframe(name = NULL) %>%
 setDT()

temp_dt <- raw_dt %>%
 # расставляем маркеры начала записей по якорным словам
 .[, line_start := stri_detect_regex(value,
                                     pattern = "склад")] %>%
 .[, idx := cumsum(line_start)] %>%
 # разделяем на колонки и заполняем пустоты (делаем прямоугольное представление)
 .[line_start == TRUE, part1 := value] %>%
 .[line_start == FALSE, part2 := value] %>%
 # для быстрой проливки строк можно делать группировки, locf и пр.
 # выберем вариант data.table, проливаем первую строку по группам
 .[, part1 := head(part1, 1), by = idx] %>%
 # забираем только полезные данные
 .[!is.na(part2)] %>%
 .[, data := stri_join(part1, part2)]

# отправляем повторно на штатный парсер csv

df <- stri_c(temp_dt$data, collapse = "\n") %>%
 readr::read_delim(
   delim = ";",
   col_names = c("cheсk", "store", "customer", "product_name", "none", "count", "product_price")
 )
источник

IS

Ilya Shutov in Python для анализа данных
источник

P

PAWPAW in Python для анализа данных
Спасибо !
источник

K

Kurah in Python для анализа данных
Всем привет!
Такая задача: на вход подаются строки с элементами через запятую(иногда 1 элемент), нужно вывести самую часту пару элементов в одной строке

Ввод:
aa,aa,cc
bb,aa
bb,aa
aa,cc
aa,aa,bb
cc,aa
bb,bb

Вывод:
aa,bb
источник

K

Kurah in Python для анализа данных
Что посоветуете ?
источник

АМ

Алексей Макаров... in Python для анализа данных
Пройти по каждому списку itertools.combinations, а потом посчитать частотность комбинаций через counter
источник

S

Slavik in Python для анализа данных
+
источник

K

Kurah in Python для анализа данных
Спасибо !
источник

h

helby in Python для анализа данных
from collections import Counter
s = Counter(str(input()).split(';')).most_common()
источник

АМ

Алексей Макаров... in Python для анализа данных
Вроде бы это не совсем решает поставленную задачу, потому что он посчитает самую частотную подстроку, но не самую частотную пару подстрок
источник

h

helby in Python для анализа данных
Почему?

Мы ведь можем записать строки в список, и после посчитать самый частый элемент?
источник

IS

Ilya Shutov in Python для анализа данных
как всегда, не совсем ясная постановка задача. требуются наиболее частые пары :)
источник

h

helby in Python для анализа данных
ну элемент может быть и парой же))))
источник

h

helby in Python для анализа данных
'aa'
источник

IS

Ilya Shutov in Python для анализа данных
неа, элементы идут через запятую.
Пара — это пара элементов.
Ни больше, ни меньше.
красивая задачка.
источник

АМ

Алексей Макаров... in Python для анализа данных
По такой логике да)) Это действительно пара букв))
источник

K

Kurah in Python для анализа данных
+
источник