问题描述
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.fillna
将NaN
替换为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()