导读:今天恰卡编程网来给各位分享关于python统计excel合并多少行的相关内容,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
python实现excel合并
Created on Mon Mar 16 11:23:05 2015
@author: admin
"""
# 分批次运行,先得到books, 再运行,利用print 来debugimport pandas as pd
import numpy as np
import matplotlib as pl
import os
count=0
#ori_path='xx'
ori_path='C:\Python27\data\sample'
def get_xls_books(ori_path): # get target filename and dir of a pathtemp = list(os.walk(ori_path)) #tmp is list ,tmp[0]该目录文件路径和文件名, tmp[1]:子目录文件路径,文件名称book_path=[]
book_name=[]
root=temp[0][0]
for i in temp[0][2]:
if os.path.splitext(i)[1] == '.xlsx': #splite filenameobj_path=os.path.join(root,i)
book_path.append(obj_path)
book_name.append(os.path.splitext(i)[0])
return zip(book_path, book_name)
def get_xls_sheets(obj_path): #get all sheets of a object pathxls=pd.ExcelFile(obj_path)
sheet_names=xls.sheet_names
sheets=[xls.parse(i) for i in range(0,len(sheet_names)) ] # use parse can get dataframe saved into a listreturn zip(sheet_names,sheets)
books=get_xls_books(ori_path) # book paths list#xls=pd.ExcelFile(books[0])
#print xls.parse(0).columns
for book in books: # this loop get a bookbookname=book[1]
bookpath=book[0]
sheets=get_xls_sheets(bookpath) # get all sheets and names from book pathfor i in range(len(sheets)): #operate each sheet, is range(len) not lensheetname=sheets[i][0]
name=bookname+'-'+sheetname+'.'+'csv'
pd_sheet=sheets[i][1] # dataFrame
cols=pd_sheet.columns
pdf=pd_sheet[[cols[17],cols[18],cols[4],cols[6],cols[8],cols[10],cols[19],cols[16]]] # use emunerate functionpdf.columns=['area','patch','wangdian','operator','custid','servid','servtype','is_identify'] # renamepdf1=pdf[pdf['is_identify']=='是'] #filterpdf2=pdf1.drop('is_identify',1)
pdf2.to_csv(os.path.join(ori_path,name), header=None, index=None)
excel怎么计算合并单元格所占行数
合并单元格的是K列
公式:
=IF(K2"",MATCH("*",K3:$K$24,),"")
注意:“K3:$K$24”这里的"K24",输完得再按下“F4”快捷键才会出现$*$**
python 代码 怎么判断excel合并单元格的行数??
xlrd和xlwt两个模块中,可以选择合并单元格的行数,但是判断合并的行数貌似不行把,它用xlrd读取时,尽管合并了但是读取是还是一行一行读的,只是合并后的数据读取时是在第一行中读取到的,接下来的都为空
求excel用公式计算合并单元格的行数或者共有多少行,感谢!
要实现这个算法,整个流程细致复杂,每一步都要注意和小心。
具体方法如下:
1、首先,来看一下原始数据。A列是美化表格使用的合并单元格(A2:A9区域),B列是A列内容对应的明细,需要在C列在每次A列名称第一次出现的时候显示A列合并单元格所占行数。
2、双击C2单元格,输入公式:
=IF(A2"",MATCH("*",A3:A$10,),"")
3、将C2单元格向下填充到到C9,这样C列就返回了想要的结果。
4、如果读者在自己表格中根据上述公式做示例,可能会在最后一个单元格出现错误值,如下图所示:
5、解决方法:
在A列数据下面的一个单元格,本例是A10单元格,输入一个空格或者其他字符,这样是为了使MATCH()函数在最后一个判断时有匹配结果,从而避免错误值。
6、下面来解释一下公式用法。
首先来说一下MATCH()函数。MATCH函数的语法是这样的:MATCH(要匹配的单元格,要匹配单元格所在的数组,第三参数)。该函数返回第一参数在第二参数里是第几个,如下图说明:
7、然后看一下=MATCH("*",A3:A$10,)的用法。
这个是MATCH()函数的通配符用法,其中的“*”代表任意字符。在C2输入该公式,返回结果的意义是:从A3起的A3:A$10区域,第一个不是空的单元格是第几个。也就是A列下一个不为空的单元格,其实也就是距离下一个单元格的空单元格数,也就是A2合并单元格所占行数。
8、外面嵌套IF()函数是为了使A列是空白的时候B列也显示空白。具体如下图C3单元格:
C3=IF(A3"",MATCH("*",A4:A$10,),"")
pandas如何统计excel中列数据的行数?
准备测试数据:
测试数据
打开PyCharm输入以下代码
程序代码
运行效果如下:
运行效果展示
附上实现代码:
#!/usr/bin/env python
import pandas as pd
OPENPATH = 'test.xls'
SAVEPATH = 'test1.xls'
def total_count(path=OPENPATH, sheetname='testsheet'):
df = pd.read_excel(path, sheet_name=sheetname, names=['值', '计数'])
# 获取统计项目
item_name = set(df['值'])
# 创建字典统计
total_dict = dict(zip([i for i in item_name], [
0 for _ in range(len(item_name))]))
# 遍历”值“列,逐个统计数量
for index, item in enumerate(df['值']):
# 如果在set中
if item in item_name:
# 加入计数统计
total_dict[item] += df['计数'][index]
# 返回
return total_dict
def datato_excel(path=SAVEPATH, sheet_name='total', data_dict={}):
report_df = pd.DataFrame.from_dict(data_dict,orient='index')
xl_writer = pd.ExcelWriter(path)
report_df.to_excel(xl_writer, sheet_name)
try:
xl_writer.save()
print('Save completed')
except:
print('Error in saving file')
if __name__ == "__main__":
datato_excel(data_dict=total_count())
不知道这是不是您想要的结果,如果有帮助,请采纳一下,谢谢!
结语:以上就是恰卡编程网为大家整理的关于python统计excel合并多少行的全部内容了,感谢您花时间阅读本站内容,希望对您有所帮助,更多关于python统计excel合并多少行的相关内容别忘了在本站进行查找喔。
相关文章
本站已关闭游客评论,请登录或者注册后再评论吧~