Я пытаюсь переименовать строки в моем фрейме данных, используя словарь и функцию карты. Проблема в том, что некоторые строки не имеют одинакового текста.
Вот код, который у меня есть:
fb_posts['title'] = fb_posts['title'].astype(str)
def converts(i):
if 'link' in i:
i == 'link'
elif 'post' in i:
i == 'post'
elif 'status' in i:
i == 'stats'
elif 'timeline' in i:
i == 'timeline'
return i
fb_posts['title'] = fb_posts['title'].apply(converts(i))
Итак, я начал с преобразования всего столбца в строки, чтобы я мог найти, содержит ли строка определенную букву, и преобразовал строку в соответствии с этим.
Однако при этом возвращается следующая трассировка:
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-310-6ddc37cbbb4d> in <module>()
----> 1 fb_posts['title'] = fb_posts['title'].apply(converts(i))
/usr/local/lib/python3.6/dist-packages/pandas/core/series.py in apply(self, func, convert_dtype, args, **kwds)
2532 # if we are a string, try to dispatch
2533 if isinstance(func, compat.string_types):
-> 2534 return self._try_aggregate_string_function(func, *args, **kwds)
2535
2536 # handle ufuncs and lambdas
/usr/local/lib/python3.6/dist-packages/pandas/core/base.py in _try_aggregate_string_function(self, arg, *args, **kwargs)
307 return f(self, *args, **kwargs)
308
--> 309 raise ValueError("{arg} is an unknown string function".format(arg=arg))
310
311 def _aggregate(self, arg, *args, **kwargs):
ValueError: Person updated his status. is an unknown string function
Вот пример моей базы данных:
title
Person shared a link.
Person shared a post.
Person posted on x's timeline
Person posted on y's timeline
Person posted on a's timeline