Python 板


LINE

各位前辈大家好~ 手上有个专案希望能达成自动化 首先是我会收到来自其他人的xlsx档案(名称假设为new_data.xlsx) 接着要把里面的资料腾到一个「汇总表.xlsx」 目前都是以满人工的方式处理 因此尝试用pandas写了个自动合并资料的程式 但只适用在「new_data.xlsx」跟「汇总表.xlsx」栏位名称一致的情形下 范例: 汇总表.xlsx https://imgur.com/a/JaToUuv (5个column) new_data.xlsx https://imgur.com/q4Mf0ho (一样5个column) 另因new_data.xlsx的WW Revenue栏位是千位表示,所以贴进汇总表要乘以1,000 两个档案合并後会长这样 https://imgur.com/a/eKRRmG9 我的code如下: import pandas as pd import xlrd df_check = xlrd.open_workbook("new_data.xlsx") sheet_check = df_check.sheet_names() '''因new_data.xlsx可能不只一个sheet要汇入汇总表, 故先建立sheet_check的list把所有在new_data.xlsx的sheet名称存起来''' add_sheet = [] while True: a = input("Please enter the sheet name to be combined (Enter N when finished): ") if a in sheet_check: add_sheet.append(a) elif a == "N": break else: print("No such sheet! Please enter sheet name again.") '''让使用者输入要汇入汇总表的sheet名称,当输入N时跳出回圈;输入非在new_data.xlsx 内的sheet名称时跑else''' database = pd.read_excel("汇总表.xlsx") #读取汇总表 df = pd.read_excel("new_data.xlsx", sheet_name = add_sheet) #读取使用者想要汇入汇总表的sheets for i in add_sheet: df[i]["WW Revenue"] = df[i]["WW Revenue"] * 1000 #汇入前WW Reveune先乘千 df_combined = database.append(pd.DataFrame(data = df[i]), ignore_index=True) database = df_combined print df_combined) df_combined.to_excel("finished_database.xlsx", index = False) =========================================================================== 在栏位名称相同的情形下这样都没问题,但我目前遇到2个问题: new_data的栏位跟汇总表不同: https://imgur.com/a/hUXcwb6 (1)栏位名称从row2开始 (且row2 and row3为合并储存格形式) (2)Volume跟Revenue有包含美国跟台湾,以及两者加总(WW), 输入汇总表我仅需要WW的数值。 (也就是此new_data G栏存入汇总表Volume栏位、 J栏乘以1,000後存入汇总表WW Revenue栏位) 请问有办法对於我现有的code做修改吗? 还是只能用别的方式呢? 非常感谢大家!! --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 58.114.222.11 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1625106959.A.BD2.html ※ 编辑: daisybubble (58.114.222.11 台湾), 07/01/2021 10:40:07
1F:推 cjtv: 如果在newdata2可以loc出你要的WW的话,在for i in add_shee 07/01 11:23
2F:→ cjtv: t:後多写两个if回圈如何? 07/01 11:23
3F:推 poototo: 这就基本的资料清洗,练习df的操作吧 07/01 12:48
4F:推 kane111: 两个excel都用pandas读进来,各自做完资料处理後,再用p 07/01 16:37
5F:→ kane111: d.merge或pd.concat来合并 07/01 16:37
6F:→ daisybubble: 谢谢大家的回覆~已尝试针对newdata做资料清理後 07/01 17:09
7F:→ daisybubble: 已可成功合并 谢谢! 07/01 17:09







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:iOS站内搜寻

TOP