Мне нужно транспонировать это, чтобы выглядеть так:
10 | 20 0.1 | 0.4 0.2 | 0.5 0.3 | 0.6
Почти 2k разных значений в столбце A, для каждого есть ровно 1k значений в столбце B, которые могут повторяться.
Есть ли автоматизированный способ сделать это?
Используйте сводную таблицу!
Eric F 6 лет назад
1
Подобный вопрос здесь: https://superuser.com/q/244507/76571 Вы, вероятно, можете использовать решения там, а затем просто добавить простой шаг транспонирования в конец, чтобы получить то, что вы хотите.
Excellll 6 лет назад
1
Сводная таблица не хранит данные, я могу извлечь только определенные функции, которые будут применяться ко всем столбцам (минимальное, максимальное, среднее, стандартное отклонение, сумма, продукт и т. Д.)
RSFalcon7 6 лет назад
1
Я также пробовал `vlookup`, но он находит только последнее значение столбца B для каждого значения столбца A
RSFalcon7 6 лет назад
0
@ Excellll, действительно, эти ответы решат мою проблему, но ни сценарий VBA, ни решение электронной таблицы Google не смогли обработать объем данных. Они терпят крах с ошибками памяти (хотя у меня все еще есть много свободной памяти)
RSFalcon7 6 лет назад
1
Какую версию Excel вы используете?
Excellll 6 лет назад
0
Excel 2016 из Office 365
RSFalcon7 6 лет назад
0
Я знаю, что у вас есть решение на Python, но вы также можете сделать это с помощью Power Query, PQ может обрабатывать около 1 ГБ данных в 32-битной версии; намного больше в 64-битной версии.
Ron Rosenfeld 6 лет назад
0
Проблема была не в памяти и не в процессоре. По крайней мере, в диспетчере задач ноутбук был загружен на ~ 50%, после аварий Excel он падает до ~ 45%
RSFalcon7 6 лет назад
0
2 ответа на вопрос
1
RSFalcon7
Этот скрипт Python сделал свое дело:
import numpy as np data = np.genfromtxt('inputcsv', delimiter=',') keys = sorted(set(data[:,0])) result = np.array([]) for k in keys: col = data[np.where(data[:,0] == k)][:,1] if not result.any(): result = col else: result = np.vstack((result, col)) print('key finished'.format(k)) np.savetxt('final.csv', np.transpose(result), delimiter=',')
Вы нашли решение своей проблемы, это здорово! Почему бы вам не опубликовать выдержки из входных и выходных файлов, чтобы все могли их просмотреть? И не забудьте принять ваш ответ, если он работает для вас.
simlev 6 лет назад
0
Потому что примеры ввода и вывода находятся в вопросе
RSFalcon7 6 лет назад
0
Я предлагал вам публиковать фактические файлы ввода и вывода, потому что я пытался запустить скрипт для вашего опубликованного ввода, и он выдает [ошибку] (https://pastebin.com/RybF7CVH). Очевидно, что сценарий ожидает ввод CSV, поэтому [здесь] (https://pastebin.com/zf613j3w) с входом, отформатированным соответствующим образом. Вы упоминаете, что есть тысячи значений столбца A, поэтому я добавил только одно, и [this] (https://pastebin.com/Ls8Gs8YJ) является ошибкой, которую я получил.
simlev 6 лет назад
0