Здесь вы не нуждаетесь concat
. Это похоже на запись sum(map(list, grouper(tup, 1000)))
вместо list(tup)
. Единственное, что делают iterator
и chunksize=1000
, это дать вам объект-читатель, который повторяет 1000-строчные DataFrames вместо того, чтобы читать все это. Если вы хотите все сразу, просто не используйте эти параметры.
Но если чтение всего файла в память сразу слишком дорого (например, занимает так много памяти, что вы получаете MemoryError
, или замедлить вашу систему до обхода, выбросив ее в swap hell), это именно то, что chunksize
для.
Проблема в том, что вы назвали результирующий итератор df
, а затем попытались используйте его как DataFrame. Это не DataFrame; это итератор, который дает вам 1000-строчные DataFrames один за другим.
Когда вы говорите это:
Моя проблема: я не знаю, как использовать такие вещи, как эти ниже для всего df, а не только для одного фрагмента
blockquote>. Ответ заключается в том, что вы не можете . Если вы не можете загрузить все это в один гигантский DataFrame, вы не сможете использовать один гигантский DataFrame. Вы должны переписать свой код вокруг кусков.
Вместо этого:
df = pd.read_csv('Check1_900.csv', sep='\t', iterator=True, chunksize=1000) print df.dtypes customer_group3 = df.groupby('UserID')
... вам нужно делать такие вещи:
for df in pd.read_csv('Check1_900.csv', sep='\t', iterator=True, chunksize=1000): print df.dtypes customer_group3 = df.groupby('UserID')
Часто , то, что вам нужно сделать, это объединить некоторые данные - уменьшить каждый кусок до чего-то гораздо меньшего с помощью только тех частей, которые вам нужны. Например, если вы хотите суммировать весь файл по группам, вы можете
groupby
каждый фрагмент, затем суммировать кусок по группам и хранить серию / массив / список / dict для текущих итогов для каждой группы.Конечно, это немного сложнее, чем просто суммирование гигантской серии сразу, , но вокруг этого нет . (За исключением покупки большего количества оперативной памяти и / или переключения на 64 бита.) Вот как
iterator
иchunksize
решают проблему: разрешая вам делать этот компромисс, когда вам нужно.
Посмотрите pmount
команда для получения информации об использовании
Да существует. Это назвало ivman и обрабатывает все события HAL. Я запускаю его при выполнении ion3. Я просто запускаю ivman
как процесс демона, но добавил программу к моему sudoers файлу:
cat /etc/sudoers
[...]
ivman {hostname}=(root) NOPASSWD: /sbin/init, /usr/sbin/hibernate
[...]
так, чтобы это могло управлять параметрами питания также.
Можно также использовать, монтируются гном для монтирования / размонтировавшийся из командной строки.
Я не полагаю, что сам Gnome обрабатывает mounting—, это - HAL. Таким образом, если HAL работает, необходимо смочь автосмонтироваться. Я предполагаю, что pmount
говорит с HAL так или иначе, и это было бы способом обработать размонтирование. Я надеюсь, что это запустило Вас, по крайней мере.
Я включаю свое USB-устройство, ввожу "менеджер томов гнома", и это, кажется, делает то, чего Вы требуете.
Это было бы "devkit-диск --mount /dev/sdxx
", где xx
- это буква и номер раздела для монтирования...