Как рандомно перемешать данные столбцов в csv файле?
Задача: рандомно перемешивать строки в каждом столбце CSV таблицы. Какие есть способы, подскажите пожалуйста.
Подробнее: К примеру есть большой массив со спарсенными данными. Скажем так - в первом столбике имена, во втором фамилии, в третьем улица проживания, в четвертом номер дома, в пятом телефон. И мне нужно каждый раз перемешивать содержимое столбцов чтобы получать уникальные сгенерированные "личности".
Столбцы большие, по 10 тысяч строк в каждом. Выборка берется из первых 5 тысяч строк. Ну это уже детали.
1. Откройте в Excel
2. Добавьте строку и заполните её случайными числами
3. Отсортируйте столбцы по значению этой строки со случайными числами.
4. Повторите для каждой строки таблицы (если каждая строка длжна быть отсортирована индивидуально)
5. Удалите строку со случайными числами
6. Профит.
А вообще, непонятен смысл действа. Если все данные перемешивать, то может просто случайными числами заполнить?
Спасибо за ваш ответ. У меня большой массив с данными. Скажем так - в первом столбике имена, во втором фамилии, в третьем улица проживания, в четвертом номер дома, в пятом телефон. И мне нужно каждый раз перемешивать содержимое всех столбцов чтобы получать уникальные сгенерированные "личности".
вы мне советуете использовать эксель и =rand() . А к примеру у меня сразу 30 таких столбцов с данными? Я эксель уже отмел в виду неудобства. Странно конечно что ни в опен офисе ни в экселе нет по умолчанию возможности рандомной сортировки. Костыли со случайными числами это просто жесть какая то.
Mouseman: Понятно, т.е. вам нужно перемешивать не столбцы в строке, а строки в столбце. Я сперва с точностью до наоборот понял. Суть задачи ясна.
Если вы умеете программировать, то написать перемешиватель данных будет не сложно, csv элементарно парсится. Но это если умеете программировать...
Ещё появилась мысль, что можно не перемешивать "каждый раз", а формировать новый набор данных. Т.е. добавляя нового человека для каждого из столбцов будет браться случайная строка из исходного набора. Не знаю, можно ли такое закостылить в экселе, я в нём только базовые какие-то вещи делать умею. Если там можно написать выражение типа "=$C$RAND(1-10)", то это будет неплохим решением. Это я подразумеваю, что ячейке присваивается значение из ячейки С со случайным номером от 1 до 10. Не знаю, можно ли так написать.
Спасибо за ответ. Насчет первого. textpad.com. Этот редактор разве открывает нормально csv таблицы? Как он может мне перемешать столбцы и их содержимое, не затрагивая сами столбцы между собой? Помоему там самая обычная сортировка, сортировка строк. Отсортировать строки я могу проще через Sublime Text, у него есть специальная опция Shuffle.
2. Эм.. Это вы язык какой привели?
Если я вас правильно понял, то что вы советуете, это просто перемешка строк. А у нас CSV таблица вообще-то. Если тупо перемешать строки в файле, нарушится структура таблицы.