如何将 pandas.core.series.Series 转换为列表?

Luk*_*man 6 python pandas

我试过

print(type(numbers[2]))
numbers[2].tolist()
print(type(numbers[2]))
Run Code Online (Sandbox Code Playgroud)

那行不通。我有

<class 'pandas.core.series.Series'>
<class 'pandas.core.series.Series'>
Run Code Online (Sandbox Code Playgroud)

数字是一个矩阵。

Joh*_*anL 11

.tolist()调用不会就地更新您的结构。相反,该方法将返回一个新列表,而不修改原始pd.Series对象。

这意味着我们必须将结果分配给原始变量以更新它。但是,如果原始变量是 a 的一个切片,pd.DataFrame()我们就不能这样做,因为在赋值时DataFramea 会自动转换list为 a pd.Series

这意味着,doingnumbers[2] = numbers[2].tolist()仍然numbers[2]是一个pd.Series. 要实际获取列表,我们需要将输出分配给另一个(可能是新的)变量,它不是DataFrame.

因此,做

numbers_list = numbers[2].tolist()
print(type(numbers_list))
Run Code Online (Sandbox Code Playgroud)

将按<class 'list'>预期输出。


d_k*_*etz 6

这不会改变任何内容,因为您没有分配它:

print(type(numbers[2]))
numbers[2].tolist()
print(type(numbers[2]))
Run Code Online (Sandbox Code Playgroud)

应改为:

print(type(numbers[2]))
numbers2list = numbers[2].tolist()
print(type(numbers2list))
Run Code Online (Sandbox Code Playgroud)

返回:

<class 'pandas.core.series.Series'>
<class 'list'>
Run Code Online (Sandbox Code Playgroud)