#python #pandas #numpy
#python #pandas #numpy
Вопрос:
У меня есть 2 списка numpy nd-массива размером 2 и 1 соответственно. Я хочу создать фрейм данных pandas, используя 2 списка, являющиеся 2 столбцами моего фрейма данных. Я делаю следующее —
Mfcc = np.arange(1,11,1)
Mfcc = np.reshape(Mfcc, (-1, 2))
Mel_spec = np.arange(1,10,2)
df = pd.DataFrame(list(zip(Mfcc, Mel_spec)),
columns =['mfcc', 'mel_spectogram']) ### mfcc is 2d and mel_spectogram is 1d
type(df.mfcc[1]) ### returns string, when it should return a 1d array
type(df.mel_spectogram[1]) ### returns string, when it should return float being the first element of the array
Как я могу этого добиться и где я, возможно, допускаю ошибку?
Ответ №1:
import numpy as np
import pandas as pd
Mfcc = np.arange(1,11,1)
Mfcc = np.reshape(Mfcc, (-1, 2))
Mel_spec = np.arange(1,10,2)
df = pd.DataFrame({'mfcc': list(Mfcc), 'mel_spectogram': Mel_spec})
df.mfcc[1], df.mel_spectogram[1]
Этот код работает исправьте свои Mfcc и Mel_spec в соответствии с этим
Комментарии:
1. Привет, спасибо за ваш ответ, но, к сожалению, у меня это тоже не работает. Попробуйте сохранить csv и после загрузки csv, type(df.mel_spectogram[1]) по-прежнему является строкой, когда я хочу, чтобы это был np nd-массив.
2. Эй, to_csv не сможет удерживать типы данных здесь. Попробуйте to_pickle, а затем прочитайте его как read_pickle .
3. Также, задавая вопрос, пожалуйста, укажите все ваши требования. Поскольку вы не упомянули, что вы сбрасываете его и снова считываете из CSV. @SoumyaRanjanSahoo
4. Правильно. Я получил эту работу, выполнив сериализацию с помощью pickle, но это не очень экономичный подход, и поэтому мне нужна была помощь в написании фрейма данных. В любом случае спасибо 🙂