2020-10-03

python数学建模2019第一题代码

# 导入模块
import pandas as pd
import numpy as np
import openpyxl

# 读取数据
df1 = pd.read_csv(r'附件2.csv', encoding='gb18030')
df2 = pd.read_csv(r'附件2.csv', encoding='gb18030')
# 合并列表
frames = [df1, df2]
result = pd.concat(frames, axis=0, join='outer')
# 删除订单为0
result = result.drop(result[result['Order'] == 0].index)
# 将成本价为0的设置为空值
result[result == 0] = np.nan
# 计算成本价
result['Cost price'] = result['Cost price'].fillna(result['Price'] * 0.7)
# 将Date设置为关键字
result['Date'] = pd.to_datetime(result['Date'])
result = result.set_index('Date')
# 生成2016-11-30到2019-1-2的每一天
index = [x.strftime('%Y-%m-%d') for x in list(pd.date_range(start='2016-11-30', end='2019-1-2'))]
# 创建列表
T = []
for i in index:
    data = {}
    a = np.nansum(result[i]['Number'] * result[i]['Price'])
    b = np.nansum(result[i]['Number'] * result[i]['Cost price'])
    data['date'] = i
    data['Turnover'] = "{:.2f}".format(a)
    data['Total_cost'] = "{:.2f}".format(b)
    T.append(data)
wb = openpyxl.Workbook()
ws = wb.active
head_row = ['日期',
            '营业额',
            '总成本']
ws.append(head_row)
for data in T:
    data_row = [data['date'],
                data['Turnover'],
                data['Total_cost']]

    ws.append(data_row)
wb.save('第一题数据.xlsx')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值