Добавление столбца фрейма данных с len () значений другого столбца

У меня возникла проблема с попыткой получить столбец счетчика символов из строковых значений в другом столбце и не выяснили, как это сделать эффективно.

for index in range(len(df)): df['char_length'][index] = len(df['string'][index])) 

По-видимому, это связано с первым созданием столбца нулей, а затем его переписыванием, и на мой набор данных занимает очень много времени. Итак, какой самый эффективный способ получить что-то вроде

 'string' 'char_length' abcd 4 abcde 5 

Я проверил довольно много, но я не смог понять это.

    Для этого у Pandas есть векторный метод string : str.len() . Чтобы создать новый столбец, вы можете написать:

     df['char_length'] = df['string'].str.len() 

    Например:

     >>> df string 0 abcd 1 abcde >>> df['char_length'] = df['string'].str.len() >>> df string char_length 0 abcd 4 1 abcde 5 

    Это должно быть значительно быстрее, чем цикл через DataFrame с циклом Python for .

    Многие другие знакомые струнные методы из Python были представлены Pandas. Например, lower (для преобразования в строчные буквы), count для подсчета вхождений определенной подстроки и replace для замены одной подстроки на другую.

    Вот один из способов сделать это.

     In [3]: df Out[3]: string 0 abcd 1 abcde In [4]: df['len'] = df['string'].str.len() In [5]: df Out[5]: string len 0 abcd 4 1 abcde 5