Собрать статистику с таблицы

  • Автор темы Автор темы TRS
  • Дата начала Дата начала

TRS

Client
Регистрация
05.03.2013
Сообщения
32
Реакции
4
Баллы
8
Есть таблица формата
rand_text;rand_text1;rand_text
rand_text;rand_text2;rand_text
rand_text;rand_text3;rand_text
rand_text;rand_text2;rand_text
....

1.3 млн строк.

необходимо собрать статистику по центральной колонке и вывести в другую таблицу в формате:
rand_text1;1
rand_text2;2
rand_text3;1

где вторая колонка - количество одинаковых совпадений из первой таблицы второй колонки.
идеальный вариант еще отсортировать по убыванию.

возможно кто-то сталкивался с подобным и есть готовый сниппет :ah:
 
В последних версиях Excel или LibreOffice Calc это легко делается, гугли последовательность действий и формулу
 
C#:
Развернуть Свернуть Копировать
var filename = @"D:\downloads\test.txt";
var outfilname = @"D:\downloads\out.txt";
var splitter = ";";

File.WriteAllLines(outfilname, File.ReadAllLines(filename, Encoding.UTF8)
        .Select(s=>s.Split(new String [] {splitter}, StringSplitOptions.None))
        .GroupBy(x=>x[1])
        .Select(g => new {Value = g.First()[1], Count = g.Count()})
        .OrderByDescending(x=>x.Count)
        .Select(d => d.Value+splitter+d.Count)
    , Encoding.UTF8);
 
  • Оценить
Реакции: dian4ik25 и Nick

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)