LINUX.ORG.RU

Помогите обработать csv таблицу

 ,


0

0

Здравствуйте! Помогите, пожалуйста с сортировкой таблицы, никак не могу найти ответ. Нужно посчитать количество одинаковых вхождений для каждого из столбцов таблицы кроме 1,2,3 столбца и дописать это количество рядом со столбцом(справа создав новый) и после этого отсортировать по одному из столбцов в порядке убывания

я только смог через awk и sort вычленить один столбец и посчитать уникальные вхождения вот так:
cat file1.csv | awk -F «;» ‘{print $4} sort -n’ | sort | uniq -c > del1.tmp
sort -g -r del1.tmp > file2.csv
и ума не приложу как это сделать с таблицей целиком

Вот как выглядит таблица первоначально:

file1.csv
data;data;data;data-5;data-55;data-1;data-75;data-83;data-95;data-105;data-115
data;data;data;data-5;data-57;data-5;data-77;data-83;data-97;data-107;data-117
data;data;data;data-1;data-51;data-1;data-71;data-81;data-91;data-101;data-111
data;data;data;data-5;data-56;data-6;data-76;data-83;data-96;data-106;data-116
data;data;data;data-1;data-52;data-1;data-72;data-82;data-92;data-101;data-112
data;data;data;data-3;data-53;data-1;data-73;data-83;data-93;data-103;data-113
data;data;data;data-4;data-54;data-1;data-74;data-83;data-94;data-104;data-114
data;data;data;data-6;data-58;data-4;data-78;data-83;data-98;data-108;data-118
data;data;data;data-7;data-59;data-3;data-79;data-89;data-99;data-109;data-119

а вот что должно получиться: (видно, что в 4-м столбце data-1 и data-5 встречаются соответственно 2 и 3 раза, что и записано в 5-м столбце, а затем 5-й столбец отсортирован)

file2.csv
data;data;data;data-5;3;data-55;1;data-1;5;data-75;1;data-83;6;data-95;1;data-105;1;data-115;1
data;data;data;data-5;3;data-56;1;data-6;1;data-76;1;data-83;6;data-96;1;data-106;1;data-116;1
data;data;data;data-5;3;data-57;1;data-5;1;data-77;1;data-83;6;data-97;1;data-107;1;data-117;1
data;data;data;data-1;2;data-51;1;data-1;5;data-71;1;data-81;1;data-91;1;data-101;2;data-111;1
data;data;data;data-1;2;data-52;1;data-1;5;data-72;1;data-82;1;data-92;1;data-101;2;data-112;1
data;data;data;data-3;1;data-53;1;data-1;5;data-73;1;data-83;6;data-93;1;data-103;1;data-113;1
data;data;data;data-4;1;data-54;1;data-1;5;data-74;1;data-83;6;data-94;1;data-104;1;data-114;1
data;data;data;data-6;1;data-58;1;data-4;1;data-78;1;data-83;6;data-98;1;data-108;1;data-118;1
data;data;data;data-7;1;data-59;1;data-3;1;data-79;1;data-89;1;data-99;1;data-109;1;data-119;1



Последнее исправление: alexross (всего исправлений: 4)

Строго обязательно для этого использовать Bash-скрипт? Нельзя какой-то более подходящиц ЯП?

ls-h ★★★★★
()

видно, что в 4-м столбце data-1 и data-5 встречаются соответственно 2 и 3 раза

Не видно.

anonymous
()

никак не могу найти ответ

А мозгом пользоваться уже не модно? Или не завезли?

видно, что в 4-м столбце data-1 и data-5 встречаются соответственно 2 и 3 раза

Не видно. [2]

---

Я уже вижу два (три?) решения; готов поделиться за $49⁹⁹.

mord0d ★★★★★
()
Ответ на: комментарий от ls-h

AWK является вполне подходящим ЯП на самом деле, разве что нет смысла его осваивать, если уже знаешь что-то более универсальное.

anonymous
()

Я бы взял jupyter и pandas, как раз очень удобно для таких вещей, там и интерактивный ввод, и визуализация.

nikolnik ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.