Удаление / сохранение столбцов Dataframe - PullRequest
0 голосов
/ 16 октября 2019

У меня есть датафрейм, импортированный из CSV-файла с использованием Pandas read_csv. Его форма 735, 36. Мне нужно отбросить последние 33 столбца, оставив первые 3. Столбцы 'code', 'proc', 'All procedures'

Я перепробовал все предложения здесь

Что бы я ни делал, я получаю следующую ошибку:

TypeError: 'bool' object is not subscriptable

Например:

df1=df[['code','proc', 'All procedures']]
TypeError                                 Traceback (most recent call last)
<ipython-input-37-350994f9b7c6> in <module>
----> 1 df[['code','proc', 'All procedures']]

TypeError: 'bool' object is not subscriptable

Я начал снова. Ошибка «объект bool не подписан» исчезла, я думаю, df был перезаписан.

Я пытаюсь использовать общедоступные данные о деятельности больницы и извлекать из нее данные. Я нейрохирург, поэтому вам, возможно, придется проявить терпение. Данные здесь https://files.digital.nhs.uk/77/0C8B3F/hosp-epis-stat-admi-proc-2018-19-tab.xlsx

Я хочу извлечь первые три столбца CSV в приведенном ниже коде и вывести в формате Excel.

Моя новая проблема заключается в том, что я не могу извлечь столбцы 'proc' и 'Все процедуры'.

Вот моя работа

import matplotlib.pyplot as plt
import pandas as pd
import pygal
import os
import webbrowser

Это импортирует одну вкладкутаблицы, которую я преобразовал в csv и переименовал

df = pd.read_csv('neuro_spine_craino_just_all4.csv')
df.head(5) 
code    proc    All procedures  Main procedure  Male    Female  Gender Unknown  Mean age    Age 0   Age 1-4 ... Age 65-69   Age 70-74   Age 75-79   Age 80-84   Age 85-89   Age 90+ Day case    Emergency   Elective    Other

0 A01.1 Hemispherectomy 20 20 8 12 0 11.0 0 7 ... 0 0 0 0 0 0 0 0 0 0 1A01.2 Полная лобэктомия головного мозга 53 53 37 16 0 40,0 1 1 ... 4 4 1 0 0 0 0 1 0 0 2 A01.3 Частичная лобэктомия головного мозга 174 148 95 79 0 41,0 1 5 ... 12 14 31 0 0 0 1 1 0 3 A01.8 Другие уточненные крупные иссечения ткани головного мозга 20 15 12 8 0 34,0 1 0 ... 0 0 0 0 0 0 0 0 0 0 4 A01.9 Неуточненные крупные иссечения тканимозг 3 3 0 3 0 39,0 0 0 ...

df.info

код процедуры Все процедуры
\ 0 A01.1 Гемисферэктомия 20
1 A01.2 Общая лобэктомия головного мозга 53
2 A01.3 Частичная лобэктомия головного мозга 174
3 A01.8 Другие уточненные крупные иссечения тканей головного мозга 20
4 A01.9 Неуточненные крупные иссечения тканей головного мозга 3

df.columns

Index([ 'код','proc', 'Все процедуры', 'Основная процедура', 'Мужской', 'Женский', 'Пол неизвестен', 'Средний возраст', 'Возраст 0', 'Возраст 1-4', 'Возраст 5-9', «10-14 лет», «15 лет», «16 лет», «17 лет», «18 лет», «19 лет», «20-24 лет», «25-29 лет», «30 лет»-34 ',' Возраст 35-39 ',' Возраст 40-44 ',' Возраст 45-49 ',' Возраст 50-54 ',' Возраст 55-59 ',' Возраст 60-64 ',' Возраст 65-69 ',' Возраст 70-74 ',' Возраст 75-79 ',' Возраст 80-84 ',' Возраст 85-89 ',' Возраст 90+ ',' Дневной случай ',' Чрезвычайная ситуация ',' Выборный ','Other'], dtype = 'object')

df['code'], ['proc'], ['All procedures']

Это даст мне только первый столбец и индекс.

(0 A01,1 1 A01,2 2 A01,3 3 A01,8 4 A01,9 5 A02,1 6 A02,2 7 A02,3 8 A02,4 9 A02,5 10 A02. 6 11 A02,7 12 A02,8 13 A02,9 14 A03,1 15 A03,2 16 A03,3

1 Ответ

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

Чтобы извлечь эти столбцы из фрейма данных, вы можете сделать:

result = df[['code', 'proc', 'All procedures']]

или

result = df.loc[:, ['code', 'proc', 'All procedures']]

См. Pandas docs здесь для получения информации об этом - известной как нарезка

Ваша проблема не включала столбцы в одном списке, переданном в фрейм данных - только 'code' был передан в фактический df селектор

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