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

时间:2019-03-28 19:07:37

标签: python pandas

我尝试了

print(type(numbers[2]))
numbers[2].tolist()
print(type(numbers[2]))

那是行不通的。我有

<class 'pandas.core.series.Series'>
<class 'pandas.core.series.Series'>

数字是一个矩阵。

2 个答案:

答案 0 :(得分:3)

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

这意味着我们必须将结果分配给原始变量以对其进行更新。但是,如果原始变量是pd.DataFrame()的一部分,我们将无法执行此操作,因为分配时DataFrame会自动将list转换为pd.Series

这意味着,执行numbers[2] = numbers[2].tolist()仍将numbers[2]设为pd.Series。要真正获得列表,我们需要将输出分配给另一个(也许是新的)变量,而不是DataFrame的一部分。

因此,做

numbers_list = numbers[2].tolist()
print(type(numbers_list))

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

答案 1 :(得分:2)

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

print(type(numbers[2]))
numbers[2].tolist()
print(type(numbers[2]))

应更改为:

print(type(numbers[2]))
numbers2list = numbers[2].tolist()
print(type(numbers2list))

返回:

<class 'pandas.core.series.Series'>
<class 'list'>