#python #pandas
#python #панды
Вопрос:
Вот пример моих данных.
df[['caption', 'mentions']].sample(7)
caption mentions
42 b'Alexa is helping people of all abilities do ... NaN
48 NaN NaN
7 b'Introducing Amazon Pharmacy. :pill::clipboar... NaN
25 b"When it's day:victory_hand_selector:and the ... charliesmallsthedood
58 b'We look at all angles when it comes to safet... NaN
88 b'A night in with your favorite food pup e... amazonfiretv,lissettecalv
22 b'Get everyday essentials auto-delivered AND s... NaN
Я хочу создать столбец, который подсчитывает количество упоминаний в заголовке. Для приведенного выше примера он вернет (0,0,0,2,0,1,0)
Вот что я пробовал до сих пор:
mentions = df['mentions'].str.lower().str.split(',')
for value in df['mentions']:
if value != 'nan':
df['mention_counts'] = mentions.apply(len)
else:
df['mention_counts'] = 0
Помогите, пожалуйста!
Комментарии:
1. Что происходит? Вы получаете сообщение об ошибке?
Ответ №1:
Проще всего было бы явно записать вашу функциональность как so —
def count_thing(row):
if type(row.mentions) == str:
return len(row.mentions.split(','))
elif np.isnan(row.mentions):
return 0
else:
pass # not sure how you want to deal with this case...
а затем используйте apply
для получения требуемого столбца:
df['mention_counts'] = df.apply(count_thing, axis=1)
С другой стороны, я не вижу никаких причин для использования lower
, поскольку вы разделяете ,
то, что не влияет…