第1章:Python基础速通

各位同学,欢迎来到《REITs量化投资从零到实战》的第一站。我是你们的老朋友,一个在量化投资和REITs领域摸爬滚打了十几年的工程师。今天咱们不聊虚的,直接上手干活。

这一章,我把它叫做「地基工程」。你想想看,盖楼之前总得把水泥沙子备齐了吧?Python就是咱们的工具箱,Anaconda就是那个装工具的箱子,Jupyter就是工作台。咱们一步步来。

1.1 Python环境搭建:Anaconda + Jupyter

先说环境搭建。我个人习惯用Anaconda,为什么?因为它省心。你不需要一个个去装Python、装库、配路径,一个安装包全搞定。我当年刚入行时,光配环境就折腾了两天,后来发现Anaconda,简直想穿越回去抽自己一巴掌。

小提示: 下载Anaconda时,记得选Python 3.9以上的版本。REITs数据分析用到的库,基本都支持3.9+。

安装步骤很简单,三步走:

  1. 去官网下载Anaconda安装包(选对应你操作系统的版本)
  2. 一路点「Next」,注意勾选「Add Anaconda to my PATH environment variable」
  3. 安装完成后,打开终端(Windows用Anaconda Prompt),输入 jupyter notebook

嗯,这里要注意:如果你用的是Mac或Linux,直接在终端里敲 jupyter notebook 就行。浏览器会自动弹出来,看到那个熟悉的界面,恭喜你,环境搭好了。

避坑指南: 我曾经遇到过一个问题——安装后Jupyter打不开,报错说「找不到命令」。后来发现是没勾选PATH选项。如果你也遇到,别慌,重装一遍,勾上那个选项就行。

1.2 变量与数据类型

环境搭好了,咱们来写第一行代码。Python里的变量,说白了就是个「标签」。你把数据贴个标签,以后就能用这个标签来调用它。

# 这是我写的第一个REITs相关变量
reit_name = "领展房产基金"
reit_price = 62.50
reit_dividend_yield = 0.052  # 5.2% 的股息率

print(reit_name)
print(reit_price)
print(reit_dividend_yield)

你看,变量名可以随便起,但最好有意义。我见过有人用 abc 来命名,三个月后自己都看不懂。咱们做量化投资,代码可读性就是生命线。

Python里常见的数据类型有这些:

类型 例子 说明
整数 (int) 100 REITs的份额数量
浮点数 (float) 62.50 REITs的价格
字符串 (str) "领展" REITs的名称
布尔值 (bool) True 是否持有该REITs

为什么会这样区分?因为不同类型的数据,能做的操作不一样。比如价格可以加减乘除,但名字不行。你想想看,把「领展」和「越秀」加起来,那是什么鬼?

1.3 列表与字典实战

单个变量存一个数据,那多个数据怎么办?这时候列表和字典就派上用场了。我当年做REITs组合分析时,列表和字典几乎天天用。

列表(List):有序的集合,用方括号 [] 表示。

# 我持有的REITs列表
my_reits = ["领展房产基金", "越秀房产信托", "阳光城"]
print(my_reits[0])  # 输出:领展房产基金

# 添加一个新的REITs
my_reits.append("招商局商业房托")
print(my_reits)

字典(Dict):键值对的集合,用花括号 {} 表示。说白了就是「名字→值」的映射。

# 用字典存储REITs的详细信息
reit_info = {
    "name": "领展房产基金",
    "price": 62.50,
    "dividend_yield": 0.052,
    "sector": "零售"
}

print(reit_info["name"])      # 输出:领展房产基金
print(reit_info["price"])     # 输出:62.5
实战经验: 我在做REITs筛选时,经常用字典来存储每只REITs的多个指标。比如股息率、市净率、负债率等。这样后续做分析时,直接通过键名取值,代码清晰又高效。

1.4 REITs数据抓取初体验

好了,前面都是热身。现在咱们来点真格的——从网上抓取REITs数据。我用的是 yfinance 这个库,它可以直接拉取港股和美股的数据。新加坡REITs也能用,但需要一点小技巧。

先安装库:

pip install yfinance pandas

然后写代码:

import yfinance as yf
import pandas as pd

# 领展房产基金(港股代码:0823.HK)
reit = yf.Ticker("0823.HK")

# 获取历史价格数据
hist = reit.history(period="1y")
print(hist.head())

# 获取股息率等关键指标
info = reit.info
print(f"名称: {info['longName']}")
print(f"当前价格: {info['currentPrice']}")
print(f"股息率: {info['dividendYield']:.2%}")

运行这段代码,你就能看到领展过去一年的价格走势,以及当前的股息率。是不是很爽?我第一次跑通时,兴奋得差点把咖啡打翻。

避坑指南: 我曾经遇到过一个问题——某些REITs的代码在yfinance上找不到。比如新加坡的REITs,代码格式是「XXX.SI」。如果报错,先查一下交易所代码格式。另外,yfinance有时会返回空数据,别慌,换个时间段试试。

最后,咱们用一张图来总结本章的知识体系:

第1章:Python基础速通 环境搭建 Anaconda安装 Jupyter Notebook PATH配置 变量与数据类型 int / float / str / bool 变量命名规范 类型转换 列表与字典 列表:有序集合 字典:键值对 增删改查操作 REITs数据抓取初体验 yfinance库使用 历史价格 / 股息率 / 关键指标

这张图把本章的四个核心模块串起来了。从环境搭建开始,到变量类型,再到列表字典,最后用数据抓取收尾。每一步都是下一环的基础,缺一不可。

好了,第一章的内容就到这里。代码不多,但都是精华。你跟着敲一遍,遇到问题别怕,那是成长的必经之路。我当年也是这么过来的。


专注资料整理