Причина, по которой это происходит, заключается в том, что ваша функция (extract_user
) возвращает:
0 <re.Match object; span=(5, 22), match='RT @Sea...
1 <re.Match object; span=(5, 17), match='RT @WFa...
2 <re.Match object; span=(5, 21), match='RT @Dav...
3 ...
Теперь я не эксперт, поэтому возьмите это с крошкой соли, но я думаю, что pandas не имеет dtype
для обработки <re.Match>
объекта, который возвращает ваша функция, и поэтому обрабатывает его с помощью None
. Проверьте этот отличный ответ, если вы хотите глубже погрузиться в обработанные dtypes.
Итак, если вы хотите, чтобы все ваши подходы были одинаковыми с минимальными изменениями, вот пример вашего функция модифицируется простым возвращением первого элемента ([0]
) каждого <re.Match>
объекта.
def extract_user(text):
m = re.search(r"RT\s@\w+:", text)
return m[0] # <-- here
stuff = df.iloc[:, 0].apply(extract_user)
print(stuff)
0 RT @SeamusHughes:
1 RT @WFaqiri:
2 RT @DavidCornDC:
3 RT @DavidCornDC:
4 RT @billroggio:
5 RT @billroggio:
6 RT @KFILE:
Надеюсь, что все прояснит.