Untitled
import pandas as pd
读取上传的文件
df = pd.read_excel('2.xlsx', sheet_name='Sheet1')
筛选 2025 年数据
df = df[(df['年度'] == 2025) & (df['月度'].between(1, 12))]
国家区域映射
region_map = {
'美国':'欧美','加拿大':'欧美','英国':'欧美','德国':'欧美','法国':'欧美',
'意大利':'欧美','西班牙':'欧美','葡萄牙':'欧美','荷兰':'欧美','瑞士':'欧美',
'瑞典':'欧美','挪威':'欧美','丹麦':'欧美','芬兰':'欧美','爱尔兰':'欧美',
'奥地利':'欧美','希腊':'欧美','波兰':'欧美','立陶宛':'欧美','罗马尼亚':'欧美',
'匈牙利':'欧美','塞尔维亚':'欧美','马其顿':'欧美','斯洛文尼亚':'欧美',
'斯洛伐克':'欧美','俄罗斯':'欧美','乌克兰':'欧美','马耳他':'欧美',
'塞浦洛斯':'欧美','比利时':'欧美','克罗地亚':'欧美',
'澳大利亚':'亚太','新西兰':'亚太','中国':'亚太','中国台湾':'亚太',
'日本':'亚太','韩国':'亚太','印度':'亚太','巴基斯坦':'亚太',
'斯里兰卡':'亚太','印尼':'亚太','菲律宾':'亚太','越南':'亚太',
'泰国':'亚太','马来西亚':'亚太','新加坡':'亚太','柬埔寨':'亚太',
'老挝':'亚太','斐济':'亚太','法属波利尼西亚':'亚太',
'土耳其':'中亚西亚','伊朗':'中亚西亚','伊拉克':'中亚西亚',
'沙特':'中亚西亚','阿联酋':'中亚西亚','以色列':'中亚西亚',
'黎巴嫩':'中亚西亚','约旦':'中亚西亚','科威特':'中亚西亚',
'卡塔尔':'中亚西亚','巴林':'中亚西亚','阿曼':'中亚西亚',
'叙利亚':'中亚西亚','巴勒斯坦':'中亚西亚','哈萨克斯坦':'中亚西亚',
'乌兹别克斯坦':'中亚西亚','吉尔吉斯斯坦':'中亚西亚',
'塔吉克斯坦':'中亚西亚','阿富汗':'中亚西亚','格鲁吉亚':'中亚西亚',
'亚美尼亚':'中亚西亚','阿塞拜疆':'中亚西亚','土库曼斯坦':'中亚西亚',
'墨西哥':'拉美','巴西':'拉美','阿根廷':'拉美','智利':'拉美',
'哥伦比亚':'拉美','秘鲁':'拉美','委内瑞拉':'拉美','洪都拉斯':'拉美',
'哥斯达黎加':'拉美','巴拿马':'拉美','多米尼加':'拉美',
'厄瓜多尔':'拉美','玻利维亚':'拉美','乌拉圭':'拉美',
'巴拉圭':'拉美','古巴':'拉美','萨尔瓦多':'拉美',
'危地马拉':'拉美','尼加拉瓜':'拉美','特立尼达和多巴哥':'拉美',
'肯尼亚':'非洲','尼日利亚':'非洲','南非':'非洲','喀麦隆':'非洲',
'加纳':'非洲','刚果':'非洲','塞内加尔':'非洲','马达加斯加':'非洲',
'坦桑尼亚':'非洲','乌干达':'非洲','赞比亚':'非洲','津巴布韦':'非洲',
'博茨瓦纳':'非洲','贝宁':'非洲','多哥':'非洲','科特迪瓦':'非洲',
'埃及':'非洲','摩洛哥':'非洲','阿尔及利亚':'非洲','利比亚':'非洲',
'索马里':'非洲','莫桑比克':'非洲','安哥拉':'非洲','毛里求斯':'非洲',
'南苏丹':'非洲','布基纳法索':'非洲','塞拉利昂':'非洲'
}
'美国':'欧美','加拿大':'欧美','英国':'欧美','德国':'欧美','法国':'欧美',
'意大利':'欧美','西班牙':'欧美','葡萄牙':'欧美','荷兰':'欧美','瑞士':'欧美',
'瑞典':'欧美','挪威':'欧美','丹麦':'欧美','芬兰':'欧美','爱尔兰':'欧美',
'奥地利':'欧美','希腊':'欧美','波兰':'欧美','立陶宛':'欧美','罗马尼亚':'欧美',
'匈牙利':'欧美','塞尔维亚':'欧美','马其顿':'欧美','斯洛文尼亚':'欧美',
'斯洛伐克':'欧美','俄罗斯':'欧美','乌克兰':'欧美','马耳他':'欧美',
'塞浦洛斯':'欧美','比利时':'欧美','克罗地亚':'欧美',
'澳大利亚':'亚太','新西兰':'亚太','中国':'亚太','中国台湾':'亚太',
'日本':'亚太','韩国':'亚太','印度':'亚太','巴基斯坦':'亚太',
'斯里兰卡':'亚太','印尼':'亚太','菲律宾':'亚太','越南':'亚太',
'泰国':'亚太','马来西亚':'亚太','新加坡':'亚太','柬埔寨':'亚太',
'老挝':'亚太','斐济':'亚太','法属波利尼西亚':'亚太',
'土耳其':'中亚西亚','伊朗':'中亚西亚','伊拉克':'中亚西亚',
'沙特':'中亚西亚','阿联酋':'中亚西亚','以色列':'中亚西亚',
'黎巴嫩':'中亚西亚','约旦':'中亚西亚','科威特':'中亚西亚',
'卡塔尔':'中亚西亚','巴林':'中亚西亚','阿曼':'中亚西亚',
'叙利亚':'中亚西亚','巴勒斯坦':'中亚西亚','哈萨克斯坦':'中亚西亚',
'乌兹别克斯坦':'中亚西亚','吉尔吉斯斯坦':'中亚西亚',
'塔吉克斯坦':'中亚西亚','阿富汗':'中亚西亚','格鲁吉亚':'中亚西亚',
'亚美尼亚':'中亚西亚','阿塞拜疆':'中亚西亚','土库曼斯坦':'中亚西亚',
'墨西哥':'拉美','巴西':'拉美','阿根廷':'拉美','智利':'拉美',
'哥伦比亚':'拉美','秘鲁':'拉美','委内瑞拉':'拉美','洪都拉斯':'拉美',
'哥斯达黎加':'拉美','巴拿马':'拉美','多米尼加':'拉美',
'厄瓜多尔':'拉美','玻利维亚':'拉美','乌拉圭':'拉美',
'巴拉圭':'拉美','古巴':'拉美','萨尔瓦多':'拉美',
'危地马拉':'拉美','尼加拉瓜':'拉美','特立尼达和多巴哥':'拉美',
'肯尼亚':'非洲','尼日利亚':'非洲','南非':'非洲','喀麦隆':'非洲',
'加纳':'非洲','刚果':'非洲','塞内加尔':'非洲','马达加斯加':'非洲',
'坦桑尼亚':'非洲','乌干达':'非洲','赞比亚':'非洲','津巴布韦':'非洲',
'博茨瓦纳':'非洲','贝宁':'非洲','多哥':'非洲','科特迪瓦':'非洲',
'埃及':'非洲','摩洛哥':'非洲','阿尔及利亚':'非洲','利比亚':'非洲',
'索马里':'非洲','莫桑比克':'非洲','安哥拉':'非洲','毛里求斯':'非洲',
'南苏丹':'非洲','布基纳法索':'非洲','塞拉利昂':'非洲'
}
df['区域'] = df['国家'].map(region_map)
df['客户类型'] = df['新/老'].apply(lambda x: '新客' if '新' in str(x) else '老客')
df['实收金额RMB'] = pd.to_numeric(df['实收金额RMB'], errors='coerce').fillna(0)
df['客户类型'] = df['新/老'].apply(lambda x: '新客' if '新' in str(x) else '老客')
df['实收金额RMB'] = pd.to_numeric(df['实收金额RMB'], errors='coerce').fillna(0)
数据透视汇总
pivot = df.pivot_table(
index=['月度', '区域'],
columns='客户类型',
values='实收金额RMB',
aggfunc='sum',
fill_value=0
)
pivot['总营收'] = pivot['新客'] + pivot['老客']
pivot = pivot[['老客', '新客', '总营收']].reset_index()
index=['月度', '区域'],
columns='客户类型',
values='实收金额RMB',
aggfunc='sum',
fill_value=0
)
pivot['总营收'] = pivot['新客'] + pivot['老客']
pivot = pivot[['老客', '新客', '总营收']].reset_index()
按月度、区域排序
order = ['欧美', '亚太', '中亚西亚', '拉美', '非洲']
pivot['区域'] = pd.Categorical(pivot['区域'], categories=order, ordered=True)
pivot = pivot.sort_values(['月度', '区域'])
pivot['区域'] = pd.Categorical(pivot['区域'], categories=order, ordered=True)
pivot = pivot.sort_values(['月度', '区域'])
保存结果
pivot.to_excel('2025年区域月度汇总.xlsx', index=False)
打印结果
print(pivot.to_string(index=False))
print("\n✅ 运行完成!文件已保存为 '2025年区域月度汇总.xlsx'")
print("\n✅ 运行完成!文件已保存为 '2025年区域月度汇总.xlsx'")