如何在Python中将pandas系列的列值转换为list?

问题描述

我有一个熊猫系列,印刷后看起来像-

0        NaN
1     20.307
2    -16.879
3      4.598
4     21.978
5    -12.913
dtype: float64

我想将第二列中的值转换为列表,使其看起来像-

[0,20.307,-16.879,4.598,21.978,-12.913]

我尝试做-my_series.iloc[:,1],但出现错误- pandas.core.indexing.IndexingError: Too many indexers 有人可以帮忙吗?谢谢。

解决方法

如果使用iloc[:,1],则要选择第二列,但在Series中没有列,因此引发错误。

如果要选择所有值而不先使用索引[1:]

L = my_series.iloc[1:].tolist()

或通过Series.dropna删除缺失值:

L = my_series.dropna().tolist()

或用Series.fillnaNaN替换为0

L = my_series.fillna(0).tolist()
,

您可以使用Series.fillna()

In [2640]: my_series.fillna(0).tolist()
Out[2640]: [0.0,20.307,-16.879,4.598,21.978,-12.913]
,

让我们尝试

list(df.my_series.fillna(0))
,

从您的预期结果可以看出,您不想 只需删除 NaN 元素,而是进行转换 到 0

因此,要获得所需的结果,请运行:

result = my_series.fillna(0).tolist()