{
"时间": "2015/1/1", 
"公司名称": "Civitas Learning", 
"公司名称链接": "https://www.itjuzi.com/company/27639", 
"轮次": "C轮", 
"金额": "1620万美元", 
"投资方": "Rethink Education", 
"最新估值(估算)": "5.26亿人民币", 
"字段1": "教育", 
"字段2": "教育信息化", 
"字段3": null
}, {
"时间": "2015/1/1", 
"公司名称": "Notesgen", 
"公司名称链接": "https://www.itjuzi.com/company/33357336", 
"轮次": "种子轮", 
"金额": "5万美元", 
"投资方": "Satya NarayananRajeev SarafARVIND JHA", 
"最新估值(估算)": "162.5万人民币", 
"字段1": "教育", 
"字段2": "教辅设备", 
"字段3": "数字化教辅教材"
}

数据集为2015-2020年在线教育市场的投资事件信息汇总。

数据字段说明:

▪ 时间:投资事件发生的时间,格式为:年/月/日。 ▪ 公司名称:被投资的公司名称。 ▪ 公司网址:被投资公司在信息披露网站的主页URL。 ▪ 融资轮次:融资轮次。 ▪ 投资金额:融资金额,单位有人民币、美元等不同货币。该字段的值有多种类型,包括:明确金额、金额范围、未披露。(读入数据后应换算成统一单位,金额范围按中值记录,未披露按0记录) ▪ 投资人:投资人,有单个投资人、多个投资人、未披露。 ▪ 最新估值(估算):投资后,被投资公司的估值。估值=投资人投资金额/投资人所占股权比例。 ▪ 字段1:被投资公司所在的领域(一级)。 ▪ 字段2:被投资公司所在的领域(二级)。 ▪ 字段3:被投资公司所在的领域(三级)。

请统计:输入一个年份,统计该年度每个公司融资总次数和总金额,并按照融资次数降序输出,次数相同按照金额降序,金额也相同按照公司名称升序。最后将结果写入result.txt文件中。

import json

def get_data():
    with open('data.json', 'r', encoding='utf-8') as f:
        data = json.load(f)
    return data

def get_year_data(year):
    data = get_data()
    year_data = []
    for item in data:
        if year in item['时间']:
            year_data.append(item)
    return year_data

def get_company_data(year_data):
    company_data = {}
    for item in year_data:
        company_name = item['公司名称']
        if company_name not in company_data:
            company_data[company_name] = {'count': 0, 'amount': 0}
        count = company_data[company_name]['count']
        amount = company_data[company_name]['amount']
        if item['金额'] == '未披露':
            amount = 0
        elif '万美元' in item['金额']:
            amount = float(item['金额'].replace('万美元', '')) * 10000
        elif '万人民币' in item['金额']:
            amount = float(item['金额'].replace('万人民币', '')) * 10000
        company_data[company_name]['count'] = count + 1
        company_data[company_name]['amount'] = amount + company_data[company_name]['amount']
    return company_data

def sort_company_data(company_data):
    sorted_data = sorted(company_data.items(), key=lambda x: (-x[1]['count'], -x[1]['amount'], x[0]))
    return sorted_data

def write_result(sorted_data):
    with open('result.txt', 'w', encoding='utf-8') as f:
        for item in sorted_data:
            f.write('{}	{}	{}
'.format(item[0], item[1]['count'], item[1]['amount']))

if __name__ == '__main__':
    year = input('请输入年份:')
    year_data = get_year_data(year)
    company_data = get_company_data(year_data)
    sorted_data = sort_company_data(company_data)
    write_result(sorted_data)

原文地址: https://www.cveoy.top/t/topic/oiYI 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录