我有以下图片: 请查看它以供参考。
http://i58.tinypic.com/33219hh.png
我想要的是让代码读取每个值 在每一栏中,告诉我多少次" number"和 "信"列中有。换句话说,是什么 发生那个"数字"和#34;字母"在各自的专栏中?
这是我的代码:
import xlrd,xlwt
ws = 'C://Users/Jack/Desktop
extract=[]
wb1 = xlrd.open_workbook(ws + 'try.xlsx')
sh1 = wb1.sheet_by_index(0)
for a in range(0,sh1.nrows):
for b in range(0,sh1.ncols):
extract.append(sh1.cell(a,b).value)
#print(extract)
print()
print('4:',extract.count('4'))
输出为4: 0
我只想从第一列算出数字4
因为我不知道如何统计每一件事
立刻。输出应该是4: 3
。
但是,我想知道如何一如既往地阅读所有内容
早些时候。
答案 0 :(得分:0)
您可以查看pandas。解决方案可以是这样的:
import pandas as pd
df = pd.io.excel.read_excel(your_file_name)
print df.icol(0).value_counts()
答案 1 :(得分:0)
将每列送到collections.Counter
import collections, xlrd
import xlrd
wb = xlrd.open_workbook('test.xls')
sh = wb.sheet_by_index(0)
columns = []
for i in xrange(sh.ncols):
columns.append(collections.Counter(sh.col_values(i)))
format_str = 'column {}: {}'
for n, column in enumerate(columns):
print(format_str.format(n, column))
>>>
column 0: Counter({u'a': 3, u'b': 2, u'c': 1, u'd': 1})
column 1: Counter({u'c': 2, u'b': 2, u'd': 2, u'a': 1})
column 2: Counter({u'c': 4, u'a': 1, u'b': 1, u'd': 1})
>>>