Индекс DataFrame.ix - это то, к чему вы хотите получить доступ. Это немного запутанно (я согласен с тем, что индексирование Pandas иногда вызывает недоумение!), Но следующее, похоже, делает то, что вы хотите:
>>> df = DataFrame(np.random.rand(4,5), columns = list('abcde'))
>>> df.ix[:,'b':]
b c d e
0 0.418762 0.042369 0.869203 0.972314
1 0.991058 0.510228 0.594784 0.534366
2 0.407472 0.259811 0.396664 0.894202
3 0.726168 0.139531 0.324932 0.906575
где .ix [срез строки, срез столбца] - это то, что интерпретируется. Подробнее о индексе Pandas здесь: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-advanced
Примечание: .ix
был устарел с момента выпуска Pandas v0.20. Вместо этого вы должны использовать .loc
или .iloc
, если это необходимо.
Обычно индекс inode 0 зарезервирован, потому что возвращаемое значение 0 обычно сигнализирует об ошибке. Множественный метод в ядре Linux - особенно в слое VFS, который используется всеми файловыми системами - возвращает ino_t, например. find_inode_number .
Есть более зарезервированные номера inode. Например, в ext2 :
#define EXT2_BAD_INO 1 /* Bad blocks inode */
#define EXT2_ROOT_INO 2 /* Root inode */
#define EXT2_BOOT_LOADER_INO 5 /* Boot loader inode */
#define EXT2_UNDEL_DIR_INO 6 /* Undelete directory inode */
и ext3 имеет:
#define EXT3_BAD_INO 1 /* Bad blocks inode */
#define EXT3_ROOT_INO 2 /* Root inode */
#define EXT3_BOOT_LOADER_INO 5 /* Boot loader inode */
#define EXT3_UNDEL_DIR_INO 6 /* Undelete directory inode */
#define EXT3_RESIZE_INO 7 /* Reserved group descriptors inode */
#define EXT3_JOURNAL_INO 8 /* Journal inode */
и ext4 имеет:
#define EXT4_BAD_INO 1 /* Bad blocks inode */
#define EXT4_ROOT_INO 2 /* Root inode */
#define EXT4_USR_QUOTA_INO 3 /* User quota inode */
#define EXT4_GRP_QUOTA_INO 4 /* Group quota inode */
#define EXT4_BOOT_LOADER_INO 5 /* Boot loader inode */
#define EXT4_UNDEL_DIR_INO 6 /* Undelete directory inode */
#define EXT4_RESIZE_INO 7 /* Reserved group descriptors inode */
#define EXT4_JOURNAL_INO 8 /* Journal inode */
Другие файловые системы используют ino 1 как номер inode для root. В общем случае файловая система может свободно выбирать свои номера inode и зарезервированные значения ino (за исключением 0).
Когда я писал файловую систему несколько веков назад, я использовал inode 0 для псевдофайла .badblocks
.
В некоторых файловых системах .badblocks
фактически присутствует в корневом каталоге как обычный файл, принадлежащий root и mode 0. root может открыть его, но чтение или запись не определено.
Существует некоторая древняя традиция, что inodes начинаются с 1, # 1 - .badblocks
, а # 2 - корневой каталог. Несмотря на то, что .badblocks
не особенно хорошо гарантирован, многие файловые системы уходят с пути, чтобы сделать root # 2.
0 используется как контрольное значение для указания нулевого или отсутствующего индексного дескриптора. аналогично тому, как указатели могут быть NULL в C. без дозорного, вам нужен дополнительный бит, чтобы проверить, был ли установлен индекс inode в структуре.
подробнее здесь:
< blockquote>Все адреса блоков и индексов начинаются с 1. Первый блок на диске - это блок 1. 0 используется для указания отсутствия блока. (Редкие файлы могут иметь их внутри них)
blockquote>http://uranus.chrysocome.net/explore2fs/es2fs.htm
для Например, в старых файловых системах, где каталоги были представлены как фиксированный массив записей в файлах, удаление файла приведет к тому, что значение индекса inode val будет равным 0. При перемещении каталога любая запись с индексом 0 будет проигнорирована.
EXT2_FIRST_INO()
- это не константа. – MSalters 23 February 2010 в 11:04