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

【任务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

【任务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
