Quelle est la méthode pour convertir une liste de chaînes Python en un objet pd.Series
?
(Les objets de la série pandas peuvent être convertis en liste en utilisant la méthode tolist()
- mais comment faire la conversion inverse?)
Je comprends que votre liste est en fait une liste de listes
import pandas as pd
thelist = [ ['sentence 1'], ['sentence 2'], ['sentence 3'] ]
df = pd.Series( (v[0] for v in thelist) )
import pandas as pd
sentence_list = ['sentence 1', 'sentence 2', 'sentence 3', 'sentence 4']
print("List of Sentences: \n", sentence_list)
sentence_series = pd.Series(sentence_list)
print("Series of Sentences: \n", sentence_series)
Même si sentence_list
est une liste de liste, ce code convertit toujours une liste en Pandas objet Series.
pd.Series(l)
fonctionne en fait sur presque tous les types de liste et renvoie un objet Series:
import pandas as pd
l = [ ['sentence 1'], ['sentence 2'], ['sentence 3'] ] #works
l = ['sentence 1', 'sentence 2', 'sentence 3'] #works
l = numpy.array(['sentance 1', 'sentance2', 'sentance3'], dtype='object') #works
print(l, type(l))
ds = pd.Series(l)
print(ds, type(ds))
0 sentence 1
1 sentence 2
2 sentence 3
dtype: object <class 'pandas.core.series.Series'>
Pour convertir la liste myList
en une série Pandas, utilisez:
mySeries = pd.Series(myList)
C'est également l'un des moyens de base pour créer une série à partir d'une liste dans Pandas.
Exemple:
myList = ['string1', 'string2', 'string3']
mySeries = pd.Series(myList)
mySeries
# Out:
# 0 string1
# 1 string2
# 2 string3
# dtype: object
Notez que Pandas devinera le type de données des éléments de la liste car une série n'admet pas les types mixtes (contrairement à Python listes). Dans le exemple au-dessus du type de données déduit était object
(le Python string
) car c'est le plus général et peut accueillir tous les autres types de données (voir data types ).
Il est possible de spécifier un type de données lors de la création d'une série:
myList= [1, 2, 3]
# inferred data type is integer
pd.Series(myList).dtype
# Out:
# dtype('int64')
myList= ['1', 2, 3]
# data type is object
pd.Series(myList).dtype
# Out:
# dtype('O')
On peut spécifier dtype
comme entier:
myList= ['1', 2.2, '3']
mySeries = pd.Series(myList, dtype='int')
mySeries.dtype
# Out:
# dtype('int64')
Mais cela ne fonctionnera que si tous les éléments de la liste peuvent être convertis dans le type de données souhaité.