Во-первых, вам нужно получить имена столбцов из 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