0
votes

Créer de nouvelles colonnes à partir de la colonne String String

Ce que je cherche à faire est de créer de nouvelles colonnes qui capturent chaque mot dans une chaîne. L'exemple est ici:

df xxx

DF souhaité: xxx

Quelqu'un a-t-il des idées pour cela? Merci!


0 commentaires

6 Réponses :


3
votes

La méthode str.split code> scindera les chaînes dans les colonnes dans une liste de mots. Ensuite, vous pouvez remplir les listes de manière à ce qu'ils ont tous la même longueur et créent un nouveau Dataframe sur ceci:

words = df.text.str.split()
maxlen = words.map(len).max()

def pad_list(l):
    return l + [None] * (maxlen - len(l))

words = pd.DataFrame(np.stack(words.map(pad_list), axis=0))


0 commentaires

0
votes

Vous pouvez convertir col2 code> en une série contenant une liste avec les mots, puis convertissez la série dans un fichier de données.

import pandas as pd

# OPs data
x = ['My Name is John', 'Hello friend', 'My favorite city is New Orleans']
df = pd.DataFrame(x, columns=['Col2'])

# convert to series with lists
s = df['Col2'].apply(lambda x: x.split())

# lists to dataframe
df_new = pd.DataFrame(item for item in s)


0 commentaires

0
votes

Cette fonction devrait faire. Il n'utilise pas de dataframes de Pandas, mais cela appelle les colums par leurs clés et les stocke dans leurs clés, encore une fois. Donc, il devrait être complètement compatible avec les pandas. xxx

autre que dans votre exemple, la colonne col2 n'est pas écrasée ou supprimée, mais les nouvelles colonnes sont ajoutées à la fin des données comme col2_0 , col2_1 , etc.


0 commentaires

0
votes

Essayez ceci,

   Col1   Col2      Col3  Col4  Col5  Col6     Col7
0    38     My      Name    is  John  None     None
1    11  Hello    friend  None  None  None     None
2   134     My  favorite  city    is   New  Orleans


0 commentaires

4
votes

Vous pouvez le créer en utilisant ceci:

import pandas as pd

df = pd.DataFrame({'Col1': [38, 11, 134], 
                    'Col2':['My Name is John', 'Hello friend', 'My favorite city is New Orleans']})
 

df1 = df.Col2.str.split(expand=True) 

df1.columns = ['Col1', 'Col2', 'Col3', 'Col4', 'Col5', 'Col6']


0 commentaires

0
votes

Essayez ceci, xxx

sortie: xxx


0 commentaires