2
votes

ajouter une colonne avec une longueur de chaîne d'une autre colonne et cum?

Étant donné le dataframe suivant :

df = pd.DataFrame({'col1': ["kuku", "pu", "d", "fgf"]})

Je veux calculer la longueur de chaque chaîne et ajouter une colonne Cumsum.

Je suis essayez de le faire avec df.str.len ("col1") mais cela génère une erreur.


0 commentaires

5 Réponses :


4
votes

Utilisez str.len()

   col1  New
0  kuku    4
1    pu    2
2     d    1
3   fgf    3

0     4
1     6
2     7
3    10
Name: New, dtype: int64

Sortie: strong>

import pandas as pd

df = pd.DataFrame({"col1": ["kuku", "pu", "d", "fgf"]})
df["New"] = df["col1"].str.len()
print(df)
print(df["New"].cumsum())   #cumulative sum


2 commentaires

Puis-je les chaîner tous à un code de ligne? Comme je le fais en R?


Bien sûr df ["New"] = df ["col1"]. Str.len (). Cumsum ()



3
votes

Le code d'initialisation du dataframe est incorrect. Essayez ceci.

>>> df['len'] = df.col1.str.len()
>>> df
   col1  len
0  kuku    4
1    pu    2
2     d    1
3   fgf    3

Vous pouvez également utiliser map .

>>> df.col1.map(lambda x: len(x))
0    4
1    2
2    1
3    3

Pour calculer la longueur.

>>> df = pd.DataFrame({'col1': ["kuku", "pu", "d", "fgf"]})
>>> df
   col1
0  kuku
1    pu
2     d
3   fgf


0 commentaires

3
votes

Ou importer des pandas en tant que pd

df = pd.DataFrame({ "col1" : ["kuku", "pu", "d", "fgf"]})
df['new'] = df.col1.apply(lambda x: len(x))


0 commentaires

1
votes

Votre argument col1 est un argument inconnu de pd.DataFrame () ...

Utilisez plutôt data comme nom d'argument ... Ensuite, ajoutez votre nouvelle colonne avec la longueur

    data = {'col1': ["kuku", "pu", "d", "fgf"]}
    df = pd.DataFrame(data=data)
    df["col1 lenghts"] = df["col1"].str.len()
    print(df)

0 commentaires

0
votes

Voici une autre alternative qui, je pense, a résolu mon problème:

df = pd.DataFrame({"col1": ['dilly macaroni recipe salad', 'gazpacho', 'bake crunchy onion potato', 'cool creamy easy pie watermelon', 'beef easy skillet tropical', 'chicken grilled tea thigh', 'cake dump rhubarb strawberry', 'parfaits yogurt', 'bread nut zucchini', 'la salad salmon']})

df["title_len"] = df[1].str.len()

df["cum_len"] = df["title_len"].cumsum()


0 commentaires