将电子表格的列存储在Python字典中
发布时间:2021-03-30 12:37:53 所属栏目:Python 来源:互联网
导读:我有一个存储在Excel文件中的表,如下所示: Species Garden Hedgerow Parkland Pasture WoodlandBlackbird 47 10 40 2 2Chaffinch 19 3 5 0 2Great Tit
我有一个存储在Excel文件中的表,如下所示: Species Garden Hedgerow Parkland Pasture Woodland Blackbird 47 10 40 2 2 Chaffinch 19 3 5 0 2 Great Tit 50 0 10 7 0 House Sparrow 46 16 8 4 0 Robin 9 3 0 0 2 Song Thrush 4 0 6 0 0 我正在使用xlrd Python库来读取这些数据.我将它读入列表列表(将表的每一行存储为列表)没有问题,使用下面的代码: from xlrd import open_workbook wb = open_workbook("Sample.xls") headers = [] sdata = [] for s in wb.sheets(): print "Sheet:",s.name if s.name.capitalize() == "Data": for row in range(s.nrows): values = [] for col in range(s.ncols): data = s.cell(row,col).value if row == 0: headers.append(data) else: values.append(data) sdata.append(values) 很明显,header是一个存储列标题的简单列表,sdata包含表数据,存储为列表列表.这是他们的样子: 标题: [u'Species',u'Garden',u'Hedgerow',u'Parkland',u'Pasture',u'Woodland'] SDATA: [[u'Blackbird',47.0,10.0,40.0,2.0,2.0],[u'Chaffinch',19.0,3.0,5.0,0.0,[u'Great Tit',50.0,7.0,0.0],[u'House Sparrow',46.0,16.0,8.0,4.0,[u'Robin',9.0,[u'Song Thrush',6.0,0.0]] 但我想将这些数据存储到Python字典中,每列作为包含每列所有值的列表的键.例如(仅显示部分数据以节省空间): dict = { 'Species': ['Blackbird','Chaffinch','Great Tit'],'Garden': [47,19,50],'Hedgerow': [10,3,0],'Parkland': [40,5,10],'Pasture': [2,7],'Woodland': [2,2,0] } 所以,我的问题是:我怎样才能做到这一点?我知道我可以按列而不是按行读取数据,如上面的代码片段,但我无法弄清楚如何将列存储在字典中. 提前感谢您提供的任何帮助. 解决方法一旦你有了列,这很容易:dict(zip(headers,sdata)) 实际上,看起来你的例子中的sdata可能是行数据,即便如此,这仍然相当容易,你也可以用zip转置表格: dict(zip(headers,zip(*sdata))) 这两个中的一个是你要求的. (编辑:甘南站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- python – 问题子类化内置类型
- python – pandas链索引的替代方法是什么?
- 匹配词典集.最优雅的解决方案Python
- python中字符的Unicode块
- python – Selenium’WebElement’对象没有属性’Get_Attri
- Python – 在字典列表中查找重复项并对其进行分组
- python – Django REST Framework中的camelCase POST数据
- python – 错误“没有提供异常”是什么意思?
- python exceptions.UnicodeDecodeError:’ascii’编解码器
- python – 带有runserver的Unicodedecodeerror