这篇文章里,想跟大家分享一下我对学习python和自动化数据处理的体会,主要是一些个人感受。作为非计算机专业人士,我的表达可能不够专业,但我希望通过分享这些感受,让更多人了解到 Python及其在数据处理中的作用。比如之前谈论的公司估值问题,通过Python自动处理数据,我们可以在短短一分钟内快速测算出公司的合理内在价值,所需的只是输入几个关键的估值参数。之前以贵州茅台为例所做的估值演示,所需的基础数据都是自动化生成的。

但在谈论Python之前,让我们先来探讨一下历史财务数据对公司估值的重要性。

估值与历史财务数据

当我们打算测算某个上市公司DCF估值的时候,首先需要回顾过去的历史财务数据。历史财务数据对估值测算非常重要,主要是基于这么几个方面的考虑:

利润表:预测的起点

财务预算的起点通常是销售预测,因为销售收入牵一发而动全身,直接影响着费用、营运资本等方面的预测。作为DCF估值的基础,企业自由现金流(FCFF)预测也不例外,测算的起点也是收入及其增长。因此,公司的成长性是估值中最重要的影响因素之一。

资产负债表:计算股权价值的基础

使用企业自由现金流(FCFF)计算出的DCF估值反映的是企业的正常经营活动创造的价值,之后还有两个步骤需要调节。一个是加回公司当下的非经营性资产,比如超额的现金储备和对外的股权投资,这部分资产不是持续经营活动所必须的,没有体现在初步计算的FCFF当中。

事实上,很多公司拥有巨额的现金储备和股权投资,对评估股权价值影响极大。比如中国的互联网巨头,不管是腾讯,还是阿里,美团,账面都有非常多的现金和股权投资。尤其是腾讯,它的股权投资金额高达9000多亿。

再一个是要减掉有息负债和少数股权,以得出企业的股权价值。还记得之前介绍的企业自由现金流(FCFF)计算的公式么,基础是税后经营利润。可见,FCFF是归属于整个公司(Firm)的,跟最终股权价值的差异就是有息负债和少数股权。

历史数据是一面镜子,以史为鉴可以知未来

公司短期的财务数据容易受到经济周期和行业周期的影响。当我们把历史年份拉长,才可以更好看清企业的财务表现。对于价值型投资,也就是增长虽然不是那么快,但业绩稳健的公司而言,DCF估值准确性更高,因为历史数据稳定,可预测性就高。对于高速成长的公司,历史数据的预测价值不大。不管是什么类型的公司,如果历史数据波动大,非常不稳定,那么基于历史数据预测未来的难度将会极高。这样的公司于投资而言风险极较大,估值难以把握。

Python与数据自动化

既然历史数据这么重要,并且往往需要多个年份的数据,如果这些数据能够自动化获取,将会极高地提高估值效率。国内有不少专业的金融数据提供商,通过excel下载财务数据是人人都可上手的操作。更好的办法是利用金融数据提供商提供的API接口获取数据,这就需要编写程序。

我们正处在人工智能方兴未艾的新时代。有了ChatGPT帮忙,编写程序变得前所未有的简单。早期的文章中,我介绍过使用ChatGPT自动写代码的示例。虽然ChatGPT替代了程序员的许多工作,但这并不意味着不需要学习编程。人人都可以成为程序员的前提是人人都理解程序、懂得编写代码。了解代码,我们才能更好地利用ChatGPT和人工智能时代带来的效率提升。

计算机的编程语言有很多种,其中最底层的是机器语言,直接操作计算机的0和1。再往上有汇编语言以及各种高级编程语言,如C++、Java等。我们不需要深入了解每种语言,只需要知道,相比于高级编程语言如C++,Python是非常接近自然语言的脚本语言。作为脚本语言,Python的语法和结构相对简单,易于上手。当然,作为脚本语言,python的缺点也很明显,就是运行速度会慢一些。但这个慢,对于处理日常任务来说,是很难感觉到的。

围绕Python的生态非常庞大,常见的应用有这么几个方面,一个是数据处理,这其中包括数据清洗,分析和可视化等;一个是网页开发,爬虫等;再一个就是现在的人工智能,这也是python越来越受欢迎的重要因素。

学习编程的感受

计算机编程是对真实世界的模拟

这是我自学python的最大感受。比如一开始学习编程都是从列表(List)、字典(Dict)等学起。把真实世界的各种对象和关系转换成列表和字典,列表里可以套字典,字典里可以套列表,如此简洁的处理就可以把人类社会的包罗万象成呈现为结构化的清晰数据。

再比如程序中的类(Class),很有点柏拉图的哲学味道。柏拉图认为万事万物都先有理念,现实世界只不过是理念的影子。他通过画家画桌子来比喻理念与具体事物的联系:木匠依照先存的理念造桌子,画家又依据木匠所做之桌子画桌子,因而画家笔下的桌子离真实有三层距离,是理念的摹本。柏拉图讲的这个理念就像是程序中的类(Class)。现实世界的描摹就像是程序中类(Class)下边的实例(Object)。

总之,通过打开编程这扇大门,你会突然领悟,原来程序是这么描述世界的,它的语言又是那么简单和优美。

让操作计算机变得有趣

虽然现在电脑功能越来越强大,但对于大多数非专业人士来说,计算机可能就是个上网本,加上个办公工具。然而,计算机真正有趣的地方在于人机交互的过程。学习编程的过程中,当你在计算机终端输入第一个指令print(“Hello, World!")并得到回应时,你会发现计算机可以成为你的交互伙伴。当你能够编写一段代码来完成一个小任务时,你会感受到这种操控的乐趣。

如何自学python

网上关于python的学习课程很多,良莠不齐,难度不一。其实自学python不难,我的建议还是自己去看书,结合工作中遇到的问题,或者生活中的兴趣,带着想要解决某个问题的念头去看书,这有助于快速上手做一些小项目,这样学起来会更快,效果立竿见影。比如财务人员常遇到的数据加工处理,以及如何自动化处理数据以提升效率的问题。

这里主要针对财务、数据分析以及投资相关的行业,推荐两本非常经典的入门书(非广告)。

一个是人民邮电出版社《python编程 -从入门到实践》。这本书在网上评分很高,一直很畅销。作为入门书,它的内容简洁,案例很好上手,确实非常合适。

另一个是机械工业出版社《利用python进行数据分析》。数据分析绕不开的python库是pandas,经常接触excel的会很容易上手pandas,因为它的数据结构类似excel的二维表结构。这本书pandas的创始人亲自执笔的,可以说,它是学习数据分析的圣经。