Ok, так что у меня есть некоторые данные в CSV-файл, который выглядит примерно так:CSV чтения столбцов и строк
[fragment1, peptide1, gene1, replicate1, replicate2, replicate3]
[fragment1, peptide2, gene1, replicate1, replicate2, replicate3]
[fragment2, peptide1, gene2, replicate1, replicate2, replicate3]
[fragment2, peptide2, gene2, replicate1, replicate2, replicate3]
[fragment3, peptide1, gene2, replicate1, replicate2, replicate3]
И проблема это - мне нужно использовать эти данные (в трех повторностей) несколько различных способов:
- Над каждую строку (т.е. просто replicate1-3 для каждой строки)
- Над каждой репликация столбца для каждого фрагмента (т.е. replicate1 от peptides1 и 2 из fragment1, и то же самое для replicate2 и 3)
- Над каждой репликационной колонкой для каждого гена (т.е. такие же, как (2), но с использованием генов вместо фрагментов
Все файлы данных имеют одинаковые столбцы, но строки (то есть количество фрагментов/пептидов/генов) различаются, поэтому я должен читать данные без с указанием номеров строк. Мне нужна, по существу, статистика (коэффициенты вариации) по каждой строке, по каждому фрагменту и по каждому геном.
Вариант в строках просто использует три репликации (всегда три значения из одной строки) и, конечно, очень просто добраться. Оба варианта по фрагментам и по генам сначала вычисляют статистику для использования первой статистики из каждого применимого репликации1, затем каждый репликат2, а затем репликацию3 (т. Е. Неизвестное количество значений из неизвестного числа строк) и после этого выполняют ту же статистику, используя ранее значения (т. е. всегда три значения).
У меня есть сценарий, который делает это, почти, но он очень длинный и (я думаю) слишком сложный. Я в основном читаю файл три раза, каждый раз собирая данные в разных манерах, описанных, монстрами в списках и иногда numpy.arrays.
В сущности, мой вопрос заключается в том, как лучше всего читать данные по-разному эффективно, как по скорости, так и по «меньше кода». Я пытался найти похожие вопросы, но безрезультатно. Любые советы о том, как это сделать, будут очень благодарны, и спасибо заранее!
Этот вопрос не соответствует теме, потому что он лучше подходит для http://codereview.stackexchange.com – jonrsharpe
Не могли бы вы использовать [pandas] (http://pandas.pydata.org/)? Я думаю, что панды очень подходят для такого рода данных. – joris
Спасибо большое! Я проверю Панды, и я спрошу также о кодеревью - я даже не знал, что это существовало! – Sajber