Pandas包处理丑陋的列名



我正试图使用python中的panda访问电子表格中的一些列,这些列的列名很难看(例如空格、parens…(。我有这个代码片段:

colnames= ['Name', 'Powered On', 'Connection State', 'Idle','Memory (GB)', 'Mem Recomm','Disk Recomm', 'Disk (GB)', 'ThinProvDisk', 'Max Read IO', 'Mac Write IO', 'IOPS Avg', 'Max VDisk Read (MBps)', 'Max VDisk Write (MBps)', 'CPU Avg (MHz)', 'vCPUs', 'vCPU Recommended', 'CPU|Usage', 'vCenter', 'Guest OS', 'Guest IP', 'VMTools status', 'Networks', 'Cluster', 'Datacenter', 'Current Host', 'Folder', 'Memory Hot Add', 'vCPU Hot Add', 'VM Version', 'vSphere Tag', 'Template', 'Datastore(s)', 'Datastores']
data = pd.read_excel(str(sys.argv[1]), names = colnames)
names = data.['Powered On'].tolist()
for x in (names):
print(x)

我正在尝试提取Powered On列的列表,但最终需要以各种组合提取其他列表。我一直在收到一个语法错误:

names = data.['Powered On'].tolist()

这意味着方括号和引号在语法上是无效的。如有任何帮助,我们将不胜感激。仅供参考,我不能修改入站电子表格,因为它是由另一个团队生成的,他们拒绝清理它。谢谢卡盘

有几种方法可以从数据帧中提取特定列。要提取单个列,可以执行以下操作之一:

data['Powered On']

或者,如果您想要的列名中没有空格或标点符号:

data.Name

请注意,这不是推荐的语法,因为它可能与保留名称冲突,如data.indexdata.columns等。

要提取多个列,请传递一个列表:

data[['Name','Powered On','Connection State']]

此处提供了有关索引和选择数据的更多文档。

您的语法不正确。您应该使用data['Powered On'],不使用句点。您可以将句点用于更简单的列名,但不能使用方括号和"。data['Idle']data.Idle相同

最新更新