马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 nh_wzg 于 2021-3-12 15:36 编辑
对样式例子的语句中,pandas模块,读入一个excel文件的19张表后,进行数据处理的学习过程。
表名取名有一定的规格,用循环结构来进行动态命名表示,读入正常。但在其他进一步的与表名相关的变量名,
需要动态命名时,不一定能够正常运行。
行28开始的循环是前面行24开始,多行语句,做注释处理后的变更写法,可以正常运行。
行57开始的循环是前面行47开始,多行语句,做注释处理后的变更写法,包含有两处对变量名进行动态变化的处理,可以正常运行。
行60到63的循环是后面行64-79 ,多行语句,想作循环处理的语句,需要对两处变量名进行动态处理,按这个表达式,不能正常运行。
- ##--20210113-0952
- ##01 高压电缆/架空线
- ##02 电缆管道/管材/支架/盖板/桥架
- ##03 线行土建
- ##04 铁塔/砼杆/金具
- ##05 高压开关设备/看门狗/户外电缆分支箱/开关柜.高压/直流屏
- ##06 二次保护设备/通信屏
- ##07 变压器
- ##08 开关柜.低压/低压开关
- ##09 无功补偿及消谐系统
- ##10 密集母线及铜排
- ##11 低压电缆/电线
- ##12 桥架
- ##13 安健环
- ##14 通用辅材
- ##15 表箱/楼层配电箱#
- a4='e:/天水观邸项目高低压配电工程/天水观邸项目高低压-清单2021.0205.xlsx'
- import pandas as pd
- f4=pd.ExcelFile(a4)
- fs4=f4.sheet_names
- ## 读入数据
- # f400=f4.parse(sheet_name=fs4[0],header=None) #有数据
- # ......
- # f418=f4.parse(sheet_name=fs4[18],header=None) #
- ## P02 -B
- for i in range(19):
- exec("f4%s=f4.parse(sheet_name=fs4[i],header=None)"%i)
- ## 把各表的columns进行统一
- ## 0:序号
- ## 1:名称
- ## 2:规格
- ## 3:单位
- ## 4:数量
- ## 5:单价
- ## 6:合计
- ## 7:备注
- ## 8:品牌
- ## 9:时间戳 / 类别?
- #原:0,1,2,3,...共有约20列
- #新:0,1,2,4,5,6,15,a,b,c #a备注 #b:9时间戳 / 类别? #c:品牌
- ## 补齐列数
- # f402=f402.assign(a=None,b=None,c=None)
- # f402=f402[[0,1,2,4,5,6,15,'a','b','c']] #7+1+2
- # ......
- # f417=f417.assign(a=None,b=None,c=None)
- # f417=f417[[0,1,2,4,5,6,15,'a','b','c']] #7+1+2
- # f418=f418.assign(a=None,b=None,c=None)
- # f418=f418[[0,1,2,3,4,5,14,'a','b','c']] #7+1+2 这个有点不同
- ## P03 -B
- for i in range(18):
- exec("f4%s=f4%d.assign(a=None,b=None,c=None)"%(i,i))
- ## 下面的无法循环运行
- # for i in range(18):
- # exec("f4%s=f4%d[[0,1,2,3,4,5,15,'a','b','c']]"%(i,i))
-
- f42=f42[[0,1,2,4,5,6,15,'a','b','c']] #7+1+2
- f43=f43[[0,1,2,4,5,6,15,'a','b','c']] #7+1+2
- f44=f44[[0,1,2,4,5,6,15,'a','b','c']] #7+1+2
- f45=f45[[0,1,2,4,5,6,15,'a','b','c']] #7+1+2
- f46=f46[[0,1,2,4,5,6,15,'a','b','c']] #7+1+2
- f47=f47[[0,1,2,4,5,6,15,'a','b','c']] #7+1+2
- f48=f48[[0,1,2,4,5,6,15,'a','b','c']] #7+1+2
- f49=f49[[0,1,2,4,5,6,15,'a','b','c']] #7+1+2
- f410=f410[[0,1,2,4,5,6,15,'a','b','c']] #7+1+2
- f411=f411[[0,1,2,4,5,6,15,'a','b','c']] #7+1+2
- f412=f412[[0,1,2,4,5,6,15,'a','b','c']] #7+1+2
- f413=f413[[0,1,2,4,5,6,15,'a','b','c']] #7+1+2
- f414=f414[[0,1,2,4,5,6,15,'a','b','c']] #7+1+2
- f415=f415[[0,1,2,4,5,6,15,'a','b','c']] #7+1+2
- f416=f416[[0,1,2,4,5,6,15,'a','b','c']] #7+1+2
- f417=f417[[0,1,2,4,5,6,15,'a','b','c']] #7+1+2
- f418=f418.assign(a=None,b=None,c=None)
- f418=f418[[0,1,2,3,4,5,14,'a','b','c']] #7+1+2 这个有点不同
复制代码
|