3.1 Python基础循环与判断
3.1 Python基础循环与判断
原值 = 100000
年限 = 10
残值率 = 0.05 # 残值为原值的5%
残值 = 原值 * 残值率
累计折旧 = 65871.45 # 截止本月初的累计折旧
本月折旧 = 0 # 初始化设置
for i in range(1,7): # 计算接下来6个月的折旧
累计折旧 = 累计折旧 + 本月折旧
#计算每月折旧
本月折旧 =round((原值 /(年限 * 12)),2) # round()函数可以实现四舍五入保留2位小数
#计算固定资产净值(即总剩余待提折旧)
净值 = 原值 – 累计折旧 – 本月折旧 – 残值 # 假设按上期相同口径计提的剩余净值
if 净值 > 0:
本月折旧 = 本月折旧
else:
本月折旧 = round(原值 – 累计折旧 – 残值,2) # 最后1期,倒挤,保留2位小数
print(f”第{i}个月应计提的折旧为:”,str(本月折旧) + “元”)
3.2 Python财务数据处理
# 导入所需库
import pandas as pd
# 读取”摘要明细.csv”
df = pd.read_csv(“摘要明细.csv”)
# 截取数据
df_shujv = df[[“摘要”,”一级科目代码”]]
# 筛选数据
df_6001 = df_shujv[df_shujv[“一级科目代码”] == 6001]
# 计算统计出数据中非空的数据
result = df_6001.count()
# 将结果打印输出
print(result)
3.3 Python财务数据爬取
这是示例文本,单击 “编辑” 按钮更改此文本。# 导入pandas
import pandas as pd
# 导入requests
import requests
# 导入json
import json
# 设置爬取报表起始年份
startYear = “2022”
# 设置爬取报表结束年份
endYear = “2022”
# 设置爬取报表股票代码
stockCode = “002594”
# 输入爬取报表股票简称
stockAbbreviation = “比亚迪”
# 资产负债表
url1 = “http://bdc.api.netinnet.cn/nin_bd_center/xbrl/queryStatementBalance?stockCode=”+stockCode+”&startYear=”+startYear+”&endYear=”+endYear
# 现金流量表
url2 = “http://bdc.api.netinnet.cn/nin_bd_center/xbrl/queryStatementCashflow?stockCode=”+stockCode+”&startYear=”+startYear+”&endYear=”+endYear
# 利润表
url3 = “http://bdc.api.netinnet.cn/nin_bd_center/xbrl/queryStatementProfit?stockCode=”+stockCode+”&startYear=”+startYear+”&endYear=”+endYear
# 开始获取网页信息”
resp = requests.get(url = url2, headers = {“User-Agent”: “Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.82 Safari/537.36”},).text
# json解析
js = json.loads(resp)
# 将报表以DataFrame存储
df = pd.DataFrame(js[“data”][“xbrlData”]).iloc[:,:]
# 重命名head列
newColumn = [“报表项目”]
df.rename(columns = {“head”: “报表项目”}, inplace = True)
for i in range(int(endYear),int(startYear)-1,-1):
df[str(i)] = pd.Series(df[str(i)], dtype=”str”)
df.rename(columns = {‘%s’%(i): str(i)+”年”}, inplace = True)
newColumn.append(str(i)+”年”)
df = df[newColumn]
# 显示数据
print(stockCode+”的现金流量表为:”)
print(df.loc[0:25])
3.4 Python财务数据清洗
# 导入相应库
import pandas as pd
# 读取文件
df = pd.read_csv(“明细表.csv”)
# 删除重复数据所在的行
df = df.drop_duplicates()
# 删除缺失值所在行
df = df.dropna()
# 筛选出相应数据并计算合计
df = df[df[“末级科目名称”] == “配件辅料”]
# 打印输出前五行
print(df.head(5))
print(“—————————————————————————————————————————”)
# 计算数量合计
total = df[“数量”].sum()
# 将结果打印输出
print(total)
