Как получить заголовок столбца определенного столбца в NumPy - PullRequest
0 голосов
/ 17 октября 2019

У меня есть следующие данные

admit_data = np.genfromtxt('/content/drive/My Drive/Colab/admission_predict.csv', delimiter=',')

Мне нужно получить какой-то определенный заголовок столбца. Я использую следующий код для получения данных. Но не удалось получить имя этого столбца

print(admit_data[1:].tolist())

Существует ли какая-либо функция, подобная .tolist(), чтобы я мог извлечь только имя этого столбца?

Изменить 1

Добавлен пример формата данных

enter image description here

Ответы [ 2 ]

1 голос
/ 17 октября 2019

Во-первых, вам нужно получить имена столбцов из csv с помощью np.genfromtxt(), например, указав names=True, затем имена столбцов заканчиваются на dtype как data.dtype.names, например:

import numpy as np


data = np.genfromtxt(
    io.StringIO('A,B,C\n1,2,3\n4,5,6'),
    dtype=None, names=True, delimiter=',', encoding='utf8')
print(data)
# [(1, 2, 3) (4, 5, 6)]
print(data.dtype.names)
# ('A', 'B', 'C')

Однако учтите, что с data[1:] вы выбираете не столбцы, а строки! Чтобы выбрать строки, вы должны использовать один из names:

print(data[1:])
# [(4, 5, 6)]

print(data['A'])
# [1 4]

print(data[['A', 'B']])                                                                                                                      
# [(1, 2) (4, 5)]

, и более сложное индексирование на самом деле немного громоздко:

# print(data.shape)
# (2,)
print(data[1:][0][1])
# 5

С другой стороныhand, Pandas предлагает гораздо более прямой синтаксис, и это является одной из основных причин, по которой он является предпочтительным инструментом для этого варианта использования:

import pandas as pd


df = pd.read_csv(io.StringIO('A,B,C\n1,2,3\n4,5,6'))


print(df['A'])
# 0    1
# 1    4
# Name: A, dtype: int64

print(df['A'][0])                                                                                                                              
# 1
1 голос
/ 17 октября 2019

Не могли бы вы дать больше информации о данных, которые вы хотите извлечь.

В зависимости от вашего вопроса, функция tolist () присутствует для серии Pandas. Лучше конвертировать admit_data в серию панд (используя функцию pd.Series ()). Затем вы можете извлечь первую строку в виде списка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...