1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128
| import pandas as pd
filter_col = '是否复评'
leftDf = pd.read_excel(r"C:\Users\kk\Desktop\项目统计表(已挂网项目).xls", header=1, usecols=['项目名称', '项目分类', '标段编号', '标段包名称', '招标人名称', '项目标段创建时间', '最高投标限价(万元)', '投资预算(万元)', '招标(资格预审)公告发布时间', '开标开始时间', '评标开始时间', '中标结果公示发布时间', '中标人', '中标价格(元)', '代理机构名称', filter_col] )
leftDf = leftDf[leftDf[filter_col] == '否'] print(leftDf)
rightDf = pd.read_excel(r'C:\Users\kai\Desktop\手工台账.xlsx', header=None, skiprows=2, usecols=[1, 4, 5, 6, 7, 8, 9, 10])
rightDf.columns = ['标段编号', '项目状态', '保证金(元)', '保证金数量', '保函数量', '投资主体性质', '所在辖区', "交易类别"] print(rightDf)
merged = pd.merge( leftDf, rightDf, on='标段编号', how='left' ) print(merged)
merged['中标价格(万元)'] = merged['中标价格(元)'] / 10000 merged['节支额(万元)'] = merged['投资预算(万元)'] - merged['中标价格(万元)'] merged['保证金总额(元)'] = merged['保证金数量'] * merged['保证金(元)'] merged['保函总额(元)'] = merged['保函数量'] * merged['保证金(元)']
merged.reset_index(drop=True, inplace=True) merged.insert(0, '序号', merged.index + 1)
out_cols = [ '序号', '投资主体性质', '招标监管部门', '项目交易分类', '节支额(万元)',
'拟中标单位', '保证金递交方式', '代理机构名称', '交易类别', '开标日期',
'所在辖区', '招标方式', '项目行业分类', '投资预算(万元)', '项目名称',
'中标价格(万元)', '中标公告发布时间', '是否电子标', '保证金(元)', '标段名称',
'招标人名称', '项目状态', '保证金', '保函', '保函总额(元)',
'保证金总额(元)' ]
merged['招标监管部门'] = '' merged['项目交易分类'] = '建设工程' merged['保证金递交方式'] = '网银转账,电子保函' merged['招标方式'] = '公开招标' merged['是否电子标'] = '是'
date_cols = ['开标开始时间', '中标结果公示发布时间'] for col in date_cols: merged[col] = pd.to_datetime(merged[col], errors='coerce')
merged['开标日期'] = merged['开标开始时间'].dt.date merged['中标公告发布时间'] = merged['中标结果公示发布时间'].dt.date
rename_map = { '中标人': '拟中标单位', '项目分类': '项目行业分类', '投资预算(万元)': '投资预算(万元)', '标段包名称': '标段名称', '保证金(元)': '保证金(元)', '保证金数量': '保证金', '保函数量': '保函' } merged.rename(columns=rename_map, inplace=True)
merged['招标(资格预审)公告发布时间'] = pd.to_datetime(merged['招标(资格预审)公告发布时间'], errors='coerce')
merged = merged.sort_values( by=['招标(资格预审)公告发布时间', '标段编号'], ascending=[True, True] )
if '序号' in merged.columns: merged.drop(columns=['序号'], inplace=True)
merged.reset_index(drop=True, inplace=True) merged.insert(0, '序号', merged.index + 1)
final = merged.reindex(columns=out_cols)
final.to_csv('导出结果.csv', index=False)
|