将Python列表转换为pandas系列

Hyp*_*nja 22 python list series dataframe pandas

将Python的句子列表转换为pd.Series对象的方法是什么?

(pandas Series对象可以使用tolist()方法转换为列表;但是如何进行反向转换?)

Col*_*net 26

据我所知,您的列表实际上是一个列表列表

import pandas as pd

thelist = [ ['sentence 1'], ['sentence 2'], ['sentence 3'] ]
df = pd.Series( (v[0] for v in thelist) )
Run Code Online (Sandbox Code Playgroud)


use*_*737 13

要将列表转换myList为 Pandas 系列,请使用:

mySeries = pd.Series(myList) 
Run Code Online (Sandbox Code Playgroud)

这也是在 Pandas 中从列表创建系列的基本方法之一。

例子:

myList = ['string1', 'string2', 'string3']                                                                                                                
mySeries = pd.Series(myList)                                                                                                                             
mySeries                                                                                                                                                 
# Out: 
# 0    string1
# 1    string2
# 2    string3
# dtype: object
Run Code Online (Sandbox Code Playgroud)

请注意,Pandas 会猜测列表元素的数据类型,因为系列不允许混合类型(与 Python 列表相反)。在上面的示例中,推断的数据类型是object(Python string),因为它是最通用的并且可以容纳所有其他数据类型(请参阅数据类型)。

创建系列时可以指定数据类型:

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')
Run Code Online (Sandbox Code Playgroud)

可以指定dtype为整数:

myList= ['1', 2.2, '3']
mySeries = pd.Series(myList, dtype='int')  
mySeries.dtype                                                                                                                                 
# Out:
# dtype('int64')
Run Code Online (Sandbox Code Playgroud)

但这只有在列表中的所有元素都可以转换为所需的数据类型时才有效。


Jus*_*ous 9

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)
Run Code Online (Sandbox Code Playgroud)

文档

即使sentence_list是列表列表,此代码仍将列表转换为 Pandas Series 对象。