Advertisement

Pandas 基础练习 python金融数据分析实验 第七周 上海商学院 实验

阅读量:

A 公司是总部位于上海的一家基金管理公司,近期发行了一款FOF基金(Fund of Funds)。根据基金对外披露的信息显示,该基金主要配置了国泰金鑫股票基金、中海医疗保健基金、华夏优势精选股票基金、富国城镇发展股票基金以及上投摩根民生需求股票基金等5 只股票型基金,表中列出了这些基金从2019 年4 月1 日至4 月12 日期间的每日净值数据。

注:FoF(Fund of Funds)是一种专门投资于其他投资基金的基金。FoF并不直接投资股票或债券,其投资范围仅限于其他基金,通过持有其他证券投资基金而间接持有股票、债券等证券资产,它是结合基金产品创新和销售渠道创新的基金新品种。

编程提示:

• 数据在Excel表格中。

• 创建序列需要运用Series 函数,并且需要输入序列中涉及的索引参数index。

• 创建数据框需要运用DataFrame 函数,并且输入以下3 个主要的参数:一是参数data输入数据或者变量;二是参数index 输入行索引;三是参数columns 输入列名。

• 将序列转换为列表,只需要运用Python 内置函数list 即可完成;将序列转换为数组,仅需要运用NumPy 模块中的函数array;将数据框转变为数组,则运用函数values。

复制代码
 import pandas as pd

    
 import numpy as np

【任务1】

针对表中的国泰金鑫股票基金,先依次创建该基金2019 年4 月1 日至4月12 日净值数据的数组 (浮点数)和交易日的数组(字符串),然后通过数组生成该基金净值的序列(Series),要求序列的索引是交易日期;此外,创建4 月3 日5 只基金净值数据的序列(Series),要求序列的索引是基金名称。

复制代码
 gtjx_npv = [1.464, 1.459, 1.466, 1.471, 1.459, 1.454, 1.458, 1.413, 1.406]

    
 #'2019-4-1','2019-4-2','2019-4-3','2019-4-4','2019-4-8','2019-4-9','2019-4-10','2019-4-11','2019-4-12'
    
 trading_days = ['2019-04-01', '2019-04-02', '2019-04-03', '2019-04-04', '2019-04-08',
    
             '2019-04-09', '2019-04-10', '2019-04-11', '2019-04-12']
    
 #1.466,1.672,1.177,1.243,1.468
    
 npv_on_apr_3 = {'国泰金鑫股票基金': 1.466, '中海医疗保健基金': 1.672,
    
             '华夏优势精选股票基金': 1.177, '富国城镇发展股票基金': 1.243,
    
             '上投摩根民生需求股票基金': 1.486}
    
  
    
 gtjx_series = pd.Series(data=gtjx_npv, index=trading_days)
    
  
    
  
    
 npv_on_apr_3_series = pd.Series(data=npv_on_apr_3)
    
    
    
    
    python
    
    
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-08-19/EgDihN603fajlzK4O8y1wF7VCcIb.png)

【任务2】

针对表中的信息,先创建中海医疗保健基金、华夏优势精选股票基金、富国城镇发展股票基金这3 只基金在2019 年4 月8 日至4 月12 日净值的数组(array),然后再通过数组生成一个数据框(DataFrame)。

复制代码
 #[1.657,1.1858,1.24]

    
 #[1.674,1.1891,1.249]
    
 #[1.686,1.1881,1.259]
    
 #[1.638,1.1616,1.233]
    
 #[1.621,1.645,1.228]
    
 zh_medical_npv = [1.657, 1.674, 1.686, 1.638, 1.621]
    
 hx_advantage_npv = [11.564, 11.77, 11.88, 11.61, 11.62]
    
 fg_town_npv = [12.4, 12.49, 12.59, 12.33, 12.28]
    
  
    
 data = [zh_medical_npv, hx_advantage_npv, fg_town_npv]
    
  
    
 # 创建一个包含中海医疗保健基金、华夏优势精选股票基金、富国城镇发展股票基金名称的列表
    
 columns = ['中海医疗保健基金', '华夏优势精选股票基金', '富国城镇发展股票基金']
    
  
    
 # 使用列表和列名创建数据框
    
 df = pd.DataFrame(data=data, columns=['2019-04-08', '2019-04-09', '2019-04-10', '2019-04-11', '2019-04-12'], index=columns)
    
  
    
  
    
 # 打印数据框
    
 print(df)
    
    
    
    
    python
    
    
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-08-19/so2YAtSlb4E7RK5kL31IG0wTM9uV.png)

【任务3】

将任务1 创建的国泰金鑫股票基金2019 年4 月1 日至4 月12 日净值数据的序列转换为列表;然后,将4 月3 日5 只基金净值的序列转换为数组。

复制代码
 # 将国泰金鑫股票基金2019年4月1日至4月12日净值数据的序列转换为列表

    
 gtjx_series_list = gtjx_series.tolist()
    
  
    
 # 将4月3日5只基金净值的序列转换为数组
    
 npv_on_apr_3_array = np.array(npv_on_apr_3.values())
    
    
    
    
    python
    
    
复制代码

全部评论 (0)

还没有任何评论哟~