Я читаю файл 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']})
Затем используйте следующее, чтобы получить уникальные значения Color:
colors = df[df.Color.notna() & df.Manufacturer.eq('Audi')]['Color'].unique().tolist()
Когда я звоню:
type(colors)
Я вижу, что Python преобразует это в массив numpy:
numpy.ndarray
Мне действительно нужно, чтобы colors
был list
(чтобы я мог передать его на ось x диаграммы Plotly), что достаточно легко сделать с помощью следующего:
colors = df[df.Color.notna() & df.Manufacturer.eq('Audi')]['Color'].unique().tolist()
Мои вопросы:
1) Почему это в первую очередь конвертируется в массив Numpy? (Я нигде не звоню Numpy)
2) Есть ли в Pythoni c способ ввести данные и преобразовать их в список без предварительной обработки?
Заранее спасибо!