Вы можете попробовать:
df[df.pids.replace('\D','',regex=True).eq('1718')]
indx pids
2 C 1718,
'\ D': любой символ, который не является цифрой от 0 до 9. blockquote>
РЕДАКТИРОВАТЬ Принимая во внимание следующее:
indx pids 2 C 1718, 5 F 3220,1718
Во время выполнения GNU Objective-C вы можете использовать (вы должны импортировать
:
class_get_instance_size ([MyClass class]);
В Mac OS X вы можете использовать (вам может потребоваться импортировать
):
class_getInstanceSize ([MyClass class]);
Эти функции будут возвращать необходимый объем памяти. чтобы выделить объект, он не будет включать память, выделенную объектом при его инициализации.
Я думаю, что описание класса содержит информацию о размере - лучше посмотреть это, чем запрашивать с помощью sizeof
оператор.
Размер объекта (objective-c) определить непросто, потому что его непросто даже определить. Что вы имели в виду под «размером объекта objective-c»?
Размер ссылки - это размер указателя (возвращенный функцией sizeof (obj_ref)).
Размер памяти, выделенной при создании (+ alloc), можно узнать по способу, который Джейсон дал в первом ответе. Но это зависит от времени выполнения. Среда выполнения gnu отличается от среды выполнения яблока.В конце концов, это только память, необходимая для примитивных типов данных, из которых состоит экземпляр. Но не память, которая может быть выделена позже (то есть во время инициализации (-init)) для объектов, на которые ссылаются ivars или строки.
Экземпляру класса
@interface FirstClass
{
int _someInt;
char _someChar;
}
…
@end
требуется не менее 5 байтов (во многих системах размер int
может варьироваться) плюс статические накладные расходы, если это необходимо среде выполнения. Размер такого объекта очевиден.
Но для экземпляра класса
@interface SecondClass
{
FirstClass *_someObject;
char *_name;
id _data;
}
…
@end
определение «размера» является сложным. Объекту требуется 12 байтов (в 32-битных системах) плюс накладные расходы на выделение. Но, возможно, имя является частью объекта и выделяется / освобождается им. Должна ли память, которая нужна фактическому имени, быть частью размера объекта? А как насчет ссылочных объектов?
Все, что знает компилятор, это указатель, поэтому вы получаете размер указателя обратно. Чтобы увидеть размер выделенного объекта, используйте один из следующих фрагментов кода:
#import <malloc/malloc.h>
// ...
NSLog(@"Size of %@: %zd", NSStringFromClass([myObject class]), malloc_size((__bridge const void *) myObject));
#import <malloc/malloc.h>
// ...
NSLog(@"size of myObject: %zd", malloc_size(myObject));
У Майка Эша есть приличная статья о некоторых внутренних элементах среды выполнения Obj-C на его блог вопросов и ответов: http://mikeash.com/?page=pyblog/friday-qa-2009-03-13-intro-to-the-objective-c-runtime.html