如何将熊猫系列的列值转换为Python中的列表?

Posted

技术标签:

【中文标题】如何将熊猫系列的列值转换为Python中的列表?【英文标题】:How to convert the column values of pandas series to list in Python? 【发布时间】:2021-02-10 12:02:15 【问题描述】:

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

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 有人可以帮忙吗?谢谢。

【问题讨论】:

看看这个漂亮的overview for pandas indexing 以避免出现 IndexingError 【参考方案1】:

如果使用iloc[:, 1],它想选择第二列,但Series 中没有列,所以引发错误。

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

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

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

L = my_series.dropna().tolist()

或将NaN 替换为0Series.fillna

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

【讨论】:

【参考方案2】:

你可以使用Series.fillna():

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

【讨论】:

当我回答时,您的答案有前两部分。因此我回答了fillna()【参考方案3】:

我们试试

list(df.my_series.fillna(0))

【讨论】:

【参考方案4】:

正如我从您的预期结果中看到的那样,您不想 只需删除 NaN 元素,而是转换它们 到0

为了得到你想要的结果,运行:

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

【讨论】:

以上是关于如何将熊猫系列的列值转换为Python中的列表?的主要内容,如果未能解决你的问题,请参考以下文章

如何将包含列表的列转换为熊猫数据框中的单独列? [复制]

将 Python 列表转换为熊猫系列

如何根据作为值列表的列值扩展熊猫数据框[重复]

如何将 csv 文件转换为 python 中的列表列表

如何从熊猫中的前一行复制缺失的列值[重复]

更改熊猫中的列类型