Sur la base de l'exemple de code que vous avez ajouté, la question à laquelle vous essayez de répondre est de savoir comment remplacer ' '
con ', '
pour chaque ligne d'un pandas dataframe
.
Voici une façon de le faire :
import pandas as pd
sampletxt = pd.read_csv('teste.csv' , header = None)
output = sampletxt.replace('\s+', ', ', regex=True)
print(output)
Ejemplo:
In [24]: l
Out[24]:
['input phrase of the file to exemplify',
'input phrase of the file to exemplify 2',
'input phrase of the file to exemplify 4']
In [25]: sampletxt = pd.DataFrame(l)
In [26]: sampletxt
Out[26]:
0
0 input phrase of the file to exemplify
1 input phrase of the file to exemplify 2
2 input phrase of the file to exemplify 4
In [27]: output = sampletxt.replace('\s+', ', ', regex=True)
In [28]: output
Out[28]:
0
0 input, phrase, of, the, file, to, exemplify
1 input, phrase, of, the, file, to, exemplify, 2
2 input, phrase, of, the, file, to, exemplify, 4
Ancienne réponse
Vous pouvez également utiliser re.sub(..)
comme suit :
In [3]: import re
In [4]: st = "input phrase of the file to exemplify"
In [5]: re.sub(' ',', ', st)
Out[5]: 'input, phrase, of, the, file, to, exemplify'
re.sub(...)
est plus rapide que str.replace(..)
In [6]: timeit re.sub(' ',', ', st)
100000 loops, best of 3: 1.74 µs per loop
In [7]: timeit st.replace(' ',', ')
1000000 loops, best of 3: 257 ns per loop
Dans le cas où plusieurs espaces séparent deux mots, la sortie de toutes les réponses basée sur str.replace(' ',',')
aura tort. Par exemple
In [15]: st
Out[15]: 'input phrase of the file to exemplify'
In [16]: re.sub(' ',', ', st)
Out[16]: 'input, phrase, of, the, file, to, , exemplify'
In [17]: st.replace(' ',', ')
Out[17]: 'input, phrase, of, the, file, to, , exemplify'
Pour résoudre ce problème, vous devez utiliser une expression régulière (regex) qui correspond à un ou plusieurs espaces, comme suit :
In [22]: st
Out[22]: 'input phrase of the file to exemplify'
In [23]: re.sub('\s+', ', ', st)
Out[23]: 'input, phrase, of, the, file, to, exemplify'