首页 > 解决方案 > 将源数据从 Numpy 数组转换为列表的最 Pythonic 方式

问题描述

我正在读取一个 Excel 文件并创建一个 Pandas 数据框,如下所示:

source_data = pd.read_excel('source_data.xlsx')

数据类似于以下内容:

df = pd.DataFrame({'Manufacturer':['<null', 'Mercedes', 'BMW', 'Audi', 'Audi', 'Audi', 'Audi', 'Audi', 'Mercedes', 'BMW'],
                          'Color':['Purple', '<null>', '<null>', 'Blue', 'Green', 'Green', 'Black', 'White', 'Gold', 'Tan']})

然后我使用以下内容获取颜色的唯一值:

colors = df[df.Color.notna() & df.Manufacturer.eq('Audi')]['Color'].unique().tolist()

当我打电话时:

type(colors)

我看到 Python 正在将其转换为 numpy 数组:

numpy.ndarray

我真的需要colors成为一个list(这样我就可以将它传递到 Plotly 图表的 x 轴),这很容易做到以下几点:

colors = df[df.Color.notna() & df.Manufacturer.eq('Audi')]['Color'].unique().tolist()

我的问题是:

1)为什么首先将其转换为 Numpy 数组?(我在任何地方都不叫 Numpy)

2) 是否有一种 Pythonic 方式来引入数据并将其转换为列表而不进行预处理?

提前致谢!

标签: pythonpandaslistnumpy

解决方案


推荐阅读