Так файл CSV Я работаю с внешностью, как:Сортировка/конденсацией большого файла CSV по нескольким столбцам
Date Time, SegmentID, indicatorvalue
2016-12-01T00:00:00Z 147649 1
2016-12-01T00:01:00Z 147649 0
2016-12-01T00:02:00Z 147649 1
... ... ...
2016-12-01T00:23:00Z 2938733 0
ЭСТ.
То, что я хочу, состоит в том, чтобы сконденсировать его в список всех сегментов, а затем процент от того, сколько из записей для этого сегмента имеет значение показателя, связанное по времени суток (AM/IP/PM/OP)
например:
segmentID, Time Period, Percentage
147649 AM 78
147649 IP 100
147649 PM 60
147649 OP 30
243546 AM 79
243546 IP 98
... ... ...
Моя попытка была создана для цикла, так что для каждого сегмента он будет держать текущую сумму процентных показателей для 4 раза день, то, как только это было что он изменился на новый идентификатор сегмента, он добавит эти значения в строку.
Проблема в том, что идентификаторы сегментов неупорядочены, что приводит к нескольким записям для одного и того же идентификатора сегмента. Я попытался упорядочить файл SegmentID, но файл слишком массивный. Любые предложения по альтернативному подходу?
EDIT: Тот, кто удалил свой комментарий отвечал, что я должен использовать панда, поэтому после того, как несколько исследований, мой код в настоящее время:
import numpy as np
import pandas as pd
df=pd.read_csv("data.csv",sep=",",index_col="Segment ID",usecols=["Segment ID","Date Time","indicatorvalue"])
df['Date Time'] = ['AM' if '06' <= x[11:13] < '10'
else 'IP' if '10' <= x[11:13] < '16'
else 'PM' if '16' <= x[11:13] < '19'
else 'OP' if '19' <= x[11:13] or x[11:13] < '06'
else 'Error' for x in df['Date Time']]
Теперь мне просто нужно работать, как конденсировать строки с повторяющиеся записи для «Date Time» и «SegmentID» при усреднении их «показателей».
Насколько массивный массив? –
Около 3,5 ГБ, не уверен, сколько строк, но в миллионах –
И сколько памяти доступно и сколько сегментов ожидается? –