2015-11-13 4 views
1

Исходный DataFrame - это всего лишь 1 столбец с кортежами. Я хочу добавить столбец с количеством элементов в каждом кортеже (длина).Добавить столбец с длиной кортежа (количество элементов)

  ITEMS 
0 (EGG, WATER, TOMATOE) 
1 (MILK, EGG) 
2 (CHOPSTICKS) 

df['NUM_ITEMS'] = df.ITEMS.len(): не работает

df['NUM_ITEMS'] = df.ITEMS.count(): добавляет колонку с общим числом строк в DataFrame

я использую df['NUM_ITEMS'] = df.ITEMS.astype(str).str.count('\', \'') + 1, но я предполагаю, что это не самый лучший способ. Я уверен, что есть прямой способ сделать это, но я не вижу этого.

Final DataSet:

  ITEMS   NUM_ITEMS 
0 (EGG, WATER, TOMATOE)  3 
1 (MILK, EGG)    2 
2 (CHOPSTICKS)    1 

Любые идеи?

Спасибо!

ответ

3

вызов apply и передать функ len:

In [392]: 
df['NUM_ITEMS'] = df['ITEMS'].apply(len) 
df 

Out[392]: 
        ITEMS NUM_ITEMS 
0 (EGG, WATER, TOMATOE)   3 
1   (MILK, EGG)   2 
2   (CHOPSTICKS)   1