在线教育市场投资事件分析:统计公司年融资情况

本文提供Python代码,用于统计在线教育市场投资事件数据中,某公司在2015-2019年间每年的融资次数和融资金额,并按融资次数降序、金额降序、年份升序排序,并将结果写入result.txt文件。

数据来源: 假设我们已经获取了包含所有投资事件的json文件,命名为'investments.json'。该文件包含以下字段:

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

代码实现:

首先,我们需要读入包含所有投资事件的json文件,并将其转换为Python的字典对象。假设我们已经将该文件命名为'investments.json',那么可以通过以下代码实现:

import json

with open('investments.json', 'r') as f:
    data = json.load(f)

接下来,我们需要实现一个函数,用于统计某个公司在每一年的融资次数和融资金额。该函数的输入参数为公司名称和数据字典对象,输出为一个包含所有融资事件的列表。在该列表中,每个元素都是一个字典对象,包含年份、融资次数和融资金额三个字段。以下是该函数的代码实现:

def count_investments(company_name, data):
    investments = []
    for event in data:
        if event['公司名称'] == company_name:
            year = int(event['时间'].split('/')[0])
            amount_str = event['金额']
            if amount_str == '未披露':
                amount = 0
            elif '万' in amount_str:
                amount = float(amount_str.split('万')[0]) * 10000
            else:
                amount = float(amount_str)
            invested_by = event['投资方']
            if isinstance(invested_by, str):
                invested_by = invested_by.split(',')
            num_investors = len(invested_by)
            found = False
            for item in investments:
                if item['year'] == year:
                    item['num_investments'] += 1
                    item['total_amount'] += amount
                    found = True
                    break
            if not found:
                investments.append({'year': year, 'num_investments': 1, 'total_amount': amount})
    return investments

接下来,我们可以调用该函数来统计某个公司在2015-2019年中的融资情况。以'Civitas Learning'为例,可以通过以下代码实现:

company_name = 'Civitas Learning'
investments = count_investments(company_name, data)
investments_2015_2019 = [item for item in investments if item['year'] in range(2015, 2020)]
investments_2015_2019.sort(key=lambda x: (-x['num_investments'], -x['total_amount'], x['year']))

最后,我们可以将结果写入result.txt文件中。以下是完整的代码实现:

import json

def count_investments(company_name, data):
    investments = []
    for event in data:
        if event['公司名称'] == company_name:
            year = int(event['时间'].split('/')[0])
            amount_str = event['金额']
            if amount_str == '未披露':
                amount = 0
            elif '万' in amount_str:
                amount = float(amount_str.split('万')[0]) * 10000
            else:
                amount = float(amount_str)
            invested_by = event['投资方']
            if isinstance(invested_by, str):
                invested_by = invested_by.split(',')
            num_investors = len(invested_by)
            found = False
            for item in investments:
                if item['year'] == year:
                    item['num_investments'] += 1
                    item['total_amount'] += amount
                    found = True
                    break
            if not found:
                investments.append({'year': year, 'num_investments': 1, 'total_amount': amount})
    return investments

with open('investments.json', 'r') as f:
    data = json.load(f)

company_name = 'Civitas Learning'
investments = count_investments(company_name, data)
investments_2015_2019 = [item for item in investments if item['year'] in range(2015, 2020)]
investments_2015_2019.sort(key=lambda x: (-x['num_investments'], -x['total_amount'], x['year']))

with open('result.txt', 'w') as f:
    f.write('公司名称:{}
'.format(company_name))
    f.write('时间	融资次数	融资金额
')
    for item in investments_2015_2019:
        f.write('{}	{}	{}
'.format(item['year'], item['num_investments'], item['total_amount']))

使用说明:

  1. 将包含投资事件数据的json文件命名为'investments.json',并将其放置在与代码文件相同的目录下。
  2. 运行代码,程序会自动统计指定公司在2015-2019年间每年的融资次数和融资金额,并将结果写入'result.txt'文件。
  3. 可根据需要修改代码中的company_name变量,以统计其他公司的融资情况。

注意事项:

  • 代码中的'investments.json'文件需要根据实际情况进行修改。
  • 代码中的公司名称'Civitas Learning'需要根据需要进行修改。
  • 代码中默认将'未披露'的金额设置为0,可根据实际情况进行调整。
  • 代码中默认将'万'单位的金额换算成人民币,可根据实际情况进行调整。

希望本文对您有所帮助!如果您有任何问题,请随时提出。

在线教育市场投资事件分析:统计公司年融资情况

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

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