Каков метод для преобразования списка строк pd.Series
объект pd.Series
?
(Объекты серии pandas можно преобразовать в список с помощью tolist()
- но как сделать обратное преобразование?)
Каков метод для преобразования списка строк pd.Series
объект pd.Series
?
(Объекты серии pandas можно преобразовать в список с помощью tolist()
- но как сделать обратное преобразование?)
Я понимаю, что ваш список на самом деле является списком списков
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)
Даже если sentence_list
- список списков, этот код все еще преобразует список в объект Pandas Series.
pd.Series(l)
фактически работает почти со всеми типами списков и возвращает объект 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'>
Чтобы преобразовать список myList
в серию Pandas, используйте:
mySeries = pd.Series(myList)
Это также один из основных способов создания серии из списка в Pandas.
Пример:
myList = ['string1', 'string2', 'string3']
mySeries = pd.Series(myList)
mySeries
# Out:
# 0 string1
# 1 string2
# 2 string3
# dtype: object
Обратите внимание, что Pandas будет угадывать тип данных элементов списка, потому что ряд не допускает смешанных типов (в отличие от списков Python). В приведенном выше примере выведенный тип данных был object
(string
Python), потому что он наиболее общий и может вместить все другие типы данных (см. Типы данных).
Можно указать тип данных при создании серии:
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')
Можно указать dtype
как целое число:
myList= ['1', 2.2, '3']
mySeries = pd.Series(myList, dtype='int')
mySeries.dtype
# Out:
# dtype('int64')
Но это будет работать только в том случае, если все элементы в списке можно привести к нужному типу данных.