#python #pandas
#python #pandas
Вопрос:
У меня есть фрейм данных, такой как;
0 0.1912
1 0.3597
2 0.3597
3 0.3597
4 0.3597
5 0.3597
6 0.2739
7 0.1641
8 0.0776
.
.
.
Прежде всего, я переношу его в вектор строк. После этого это выглядит следующим образом;
0 1 2 3 ... 18933 18934 18935 18936
ecg 0.1912 0.3597 0.3597 0.3597 ... 0.3847 0.3847 0.3847 0.3847
Итак, как вы видите, номера индексов теперь являются именами заголовков столбцов. Допустим, я сохранил приведенный выше вектор строк в переменной с именем row_vector
. После этого я хочу добавить этот вектор строк в другой фрейм данных, подобный этому;
df = pd.DataFrame({'ecg':[row_vector]}) #ecg is used to be a header name for the row vector
Когда я это делаю, это добавляет вектор строк в этот новый фрейм данных, но неправильным способом;
ecg
0 0 1 2 3 ... 190...
Как вы видите, он добавил «имена заголовков» вектора строк, а не реальные значения под этими именами заголовков. Я хотел бы получить такой результат;
ecg
0 0.1912 0.3597 0.3597 0.3597 ... 0.3847 0.3847 0.3847 0.3847 ...
Итак, как я могу это исправить? Заранее спасибо…
Комментарии:
1.
row_vector.values
?2. Ну да, ответ настолько прост. Спасибо.
3. Я включил это в качестве ответа, поскольку не смог найти прямой дубликат. Рад, что исправлено!
Ответ №1:
Вы можете использовать .values
or .to_numpy
(новый в версии 0.24) методы объекта series для доступа к его значениям. Смотрите пример ниже.
df = pd.DataFrame({'A':[0,1,2,3,4]})
print(df['A']) # prints indexs and values
С принтами:
0 0
1 1
2 2
3 3
4 4
5 5
Name: A, dtype: int64
в то время как вы можете просто получить доступ к значениям:
print(df['A'].to_numpy())
выводит на экран:
[0 1 2 3 4 5]
Обратите внимание, документация для .values
поставляется с предупреждением:
Предупреждение Мы рекомендуем использовать Series.array или Series.to_numpy(), в зависимости от того, нужна ли вам ссылка на базовые данные или массив NumPy.
поэтому я бы использовал .to_numpy
метод.