【发布时间】:2020-02-13 16:54:24
【问题描述】:
我有一个使用 Pandas read_csv 从 csv 文件导入的数据框。它的形状是 735、36。我需要删除最后 33 列 - 保留前 3 列。
这些列是'code'、'proc'、'All procedures'
我已经尝试了所有的建议here
无论我做什么,我都会收到以下错误:
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
我又开始了。 “布尔对象不可下标”错误已经消失,我认为 df 已被覆盖。
我正在尝试使用一些关于医院活动的公开可用数据并从中提取数据。我是一名神经外科医生,因此您可能需要耐心等待。数据在这里 https://files.digital.nhs.uk/77/0C8B3F/hosp-epis-stat-admi-proc-2018-19-tab.xlsx
我想在下面的代码中提取CSV的前三列,并输出为excel。
我的新问题是我无法提取“proc”和“All procedure”列。
这是我的工作
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 半球切除术 20 20 8 12 0 11.0 0 7 ... 0 0 0 0 0 0 0 0 0 0 1 A01.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 3 1 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
code proc 所有程序
\
0 A01.1 半球切除术 20
1 A01.2 全脑叶切除术 53
2 A01.3 部分脑叶切除术 174
3 A01.8 其他特指的脑组织大切除术 20
4 A01.9 未特指的脑组织大切除 3
df.columns
Index(['code', '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 岁以上”、 '日案例', '紧急情况', '选修课', '其他'], 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
【问题讨论】:
-
什么是
df,从错误看来是一个布尔值。 -
您能否设置一个示例来显示 repl.it 上的失败?看起来不像
df实际上是 DataFrame 类型 -
具体来说,我们需要了解如何使用虚拟数据创建 df。不是整个 df = pd.read_csv(...) 而是包含数据的样本,例如
df = pd.DataFrame({'col1': [1,2,3], 'col2': [4,5,6]})。我会刷新你的笔记本并从头开始,以防df在执行其他单元格时被覆盖。