С копией-n-вставкой ваших строк:
In [362]: txt
Out[362]: "['vrouw', 43, '2', 'onbeantwoord', '2', '2', 'onbeantwoord', '']\n\n['vrouw', 34, '2', 'onbeantwoord', '2', '2', 'onbeantwoord', '']\n\n['vrouw', 32, '2', 'onbeantwoord', '2', '2', 'onbeantwoord', '']\n\n['vrouw', 32, '2', 'onbeantwoord', '2', '2', 'onbeantwoord', '']\n\n['vrouw', 43, '3', 'sport', '2', '2', 'onbeantwoord', '']\n\n['vrouw', 32, '2', 'onbeantwoord', '2', '2', 'onbeantwoord', '']\n\n['vrouw', 43, '2', 'onbeantwoord', '3', '3', 'collega', 'nee']"
In [364]: data = np.genfromtxt(txt.splitlines(), delimiter=',',dtype=None, encoding=None)
In [365]: data
Out[365]:
array([("['vrouw'", 43, " '2'", " 'onbeantwoord'", " '2'", " '2'", " 'onbeantwoord'", " '']"),
("['vrouw'", 34, " '2'", " 'onbeantwoord'", " '2'", " '2'", " 'onbeantwoord'", " '']"),
("['vrouw'", 32, " '2'", " 'onbeantwoord'", " '2'", " '2'", " 'onbeantwoord'", " '']"),
("['vrouw'", 32, " '2'", " 'onbeantwoord'", " '2'", " '2'", " 'onbeantwoord'", " '']"),
("['vrouw'", 43, " '3'", " 'sport'", " '2'", " '2'", " 'onbeantwoord'", " '']"),
("['vrouw'", 32, " '2'", " 'onbeantwoord'", " '2'", " '2'", " 'onbeantwoord'", " '']"),
("['vrouw'", 43, " '2'", " 'onbeantwoord'", " '3'", " '3'", " 'collega'", " 'nee']")],
dtype=[('f0', '<U8'), ('f1', '<i8'), ('f2', '<U4'), ('f3', '<U15'), ('f4', '<U4'), ('f5', '<U4'), ('f6', '<U15'), ('f7', '<U7')])
Результатом является 1d структурированный массив со смесью строковых и числовых полей, на которые нужно ссылаться по имени, а не по номеру столбца.
'f1' является числовым, потому что в оригинале нет кавычек.Таким образом, можно просмотреть это поле и легко взять его среднее значение:
In [367]: data['f1']
Out[367]: array([43, 34, 32, 32, 43, 32, 43])
In [368]: np.mean(data['f1'])
Out[368]: 37.0
genfromtxt
не удаляет скобки, поэтому у строк 'f0' они по-прежнему есть.
Дополнительный слойкавычки также затрудняют преобразование других полей в целое число.
Если бы файл имел более чистые значения CSV, его было бы легче читать и использовать:
In [372]: txt1 = """vrouw, 43, 2, onbeantwoord, 2, 2, onbeantwoord, ''
...: vrouw, 34, 2, onbeantwoord, 2, 2, onbeantwoord, '' """
...:
In [373]:
In [373]: data1 = np.genfromtxt(txt1.splitlines(), delimiter=',',dtype=None, enc
...: oding=None)
In [374]: data1
Out[374]:
array([('vrouw', 43, 2, ' onbeantwoord', 2, 2, ' onbeantwoord', " ''"),
('vrouw', 34, 2, ' onbeantwoord', 2, 2, ' onbeantwoord', " ''")],
dtype=[('f0', '<U5'), ('f1', '<i8'), ('f2', '<i8'), ('f3', '<U13'), ('f4', '<i8'), ('f5', '<i8'), ('f6', '<U13'), ('f7', '<U3')])
In [375]: data1['f0']
Out[375]: array(['vrouw', 'vrouw'], dtype='<U5')
In [376]: data1['f1']
Out[376]: array([43, 34])
In [377]: data1['f5']
Out[377]: array([2, 2])