2015-2020年在线教育市场投资事件数据分析 - Python代码实现
{
"时间": "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 著作权归作者所有。请勿转载和采集!