2015-04-25 23 views
5

Mam problem z próbą uzyskania kolumny liczby znaków wartości ciągu w innej kolumnie i nie wiem, jak to zrobić skutecznie.Dodawanie kolumny DataFrame z len() wartości innej kolumny

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

Ten pozornie obejmuje najpierw tworząc kolumnę null, a następnie przepisanie go, a to trwa bardzo długo na przetwarzanie moich danych przedstawionych. Jaki jest najskuteczniejszy sposób na uzyskanie czegoś podobnego, aby uzyskać coś w rodzaju Sprawdziłem trochę, ale nie byłem w stanie tego rozgryźć.

Odpowiedz

9

Panda ma vectorised string method do tego: str.len(). Aby utworzyć nową kolumnę można napisać:

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

Na przykład:

>>> df 
    string 
0 abcd 
1 abcde 

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

ten powinien być znacznie szybszy niż zapętlenie nad DataFrame z Pythona for pętli.

W Pandach wprowadzono wiele innych znanych metod napisanych w języku Python. Na przykład: lower (do przekształcania na małe litery), count do liczenia wystąpień określonego podciągu i replace do zamiany jednego podłańcucha na inny.

1

Oto jeden sposób, aby to zrobić.

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 
Powiązane problemy