1
0

初步实现金字塔选股

This commit is contained in:
2025-01-13 00:11:43 +08:00
parent b72e50b40e
commit 05e21635ef
5 changed files with 46955 additions and 293 deletions

View File

@@ -0,0 +1,562 @@
{
"cells": [
{
"cell_type": "code",
"id": "initial_id",
"metadata": {
"collapsed": true,
"ExecuteTime": {
"end_time": "2025-01-12T02:54:11.062677Z",
"start_time": "2025-01-12T02:54:11.058692Z"
}
},
"source": [
"import pandas as pd\n",
"import tushare as ts\n",
"\n",
"ts_pro = ts.pro_api(token=\"64ebff4fa679167600b905ee45dd88e76f3963c0ff39157f3f085f0e\")"
],
"outputs": [],
"execution_count": 2
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-01-12T03:04:46.270874Z",
"start_time": "2025-01-12T03:04:45.589112Z"
}
},
"cell_type": "code",
"source": [
"stock_df = ts_pro.stock_basic(\n",
" fields=\"ts_code,symbol,name,area,industry,fullname,enname,cnspell,market,exchange,curr_type,list_status,list_date,delist_date,is_hs,act_name,act_ent_type\")\n",
"stock_df.to_csv(\"../材料/股票基础信息.csv\", index=False)"
],
"id": "9bff0b9f37a2022a",
"outputs": [],
"execution_count": 11
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-01-12T04:06:31.055709Z",
"start_time": "2025-01-12T04:06:31.030421Z"
}
},
"cell_type": "code",
"source": [
"stock_df = pd.read_csv(\"../材料/股票基础信息.csv\")\n",
"stock_df"
],
"id": "c4addb03ad6dfd89",
"outputs": [
{
"data": {
"text/plain": [
" ts_code symbol name area industry fullname \\\n",
"0 000001.SZ 1 平安银行 深圳 银行 平安银行股份有限公司 \n",
"1 000002.SZ 2 万科A 深圳 全国地产 万科企业股份有限公司 \n",
"2 000004.SZ 4 国华网安 深圳 软件服务 深圳国华网安科技股份有限公司 \n",
"3 000006.SZ 6 深振业A 深圳 区域地产 深圳市振业(集团)股份有限公司 \n",
"4 000007.SZ 7 全新好 深圳 其他商业 深圳市全新好股份有限公司 \n",
"... ... ... ... ... ... ... \n",
"5383 920111.BJ 920111 聚星科技 NaN NaN 温州聚星科技股份有限公司 \n",
"5384 920116.BJ 920116 星图测控 NaN NaN 中科星图测控技术股份有限公司 \n",
"5385 920118.BJ 920118 太湖远大 NaN NaN 浙江太湖远大新材料股份有限公司 \n",
"5386 920128.BJ 920128 胜业电气 NaN NaN 胜业电气股份有限公司 \n",
"5387 689009.SH 689009 九号公司-WD 北京 摩托车 九号有限公司 \n",
"\n",
" enname cnspell market \\\n",
"0 Ping An Bank Co., Ltd. payh 主板 \n",
"1 China Vanke Co.,Ltd. wka 主板 \n",
"2 Shenzhen Guohua Network Security Technology Co... ghwa 主板 \n",
"3 Shenzhen Zhenye(Group) Co., Ltd. szya 主板 \n",
"4 Shenzhen Quanxinhao Co,.Ltd. qxh 主板 \n",
"... ... ... ... \n",
"5383 Wenzhou Juxing Science And Technology Co.,Ltd. jxkj 北交所 \n",
"5384 Geovis Insighter Technology Co.,Ltd. xtck 北交所 \n",
"5385 Zhejiang Taihu Yuanda New Material Co., Ltd thyd 北交所 \n",
"5386 Shengye Electric Co., Ltd. sydq 北交所 \n",
"5387 Ninebot Limited jhgs 科创板 \n",
"\n",
" exchange curr_type list_status list_date delist_date is_hs \\\n",
"0 SZSE CNY L 19910403 NaN S \n",
"1 SZSE CNY L 19910129 NaN S \n",
"2 SZSE CNY L 19910114 NaN N \n",
"3 SZSE CNY L 19920427 NaN S \n",
"4 SZSE CNY L 19920413 NaN N \n",
"... ... ... ... ... ... ... \n",
"5383 BSE CNY L 20241111 NaN N \n",
"5384 BSE CNY L 20250102 NaN N \n",
"5385 BSE CNY L 20240822 NaN N \n",
"5386 BSE CNY L 20241129 NaN N \n",
"5387 SSE CNY L 20201029 NaN NaN \n",
"\n",
" act_name act_ent_type \n",
"0 无实际控制人 无 \n",
"1 深圳市人民政府国有资产监督管理委员会 地方国企 \n",
"2 李映彤 民营企业 \n",
"3 深圳市人民政府国有资产监督管理委员会 地方国企 \n",
"4 王玩虹 民营企业 \n",
"... ... ... \n",
"5383 NaN NaN \n",
"5384 NaN NaN \n",
"5385 NaN NaN \n",
"5386 NaN NaN \n",
"5387 NaN NaN \n",
"\n",
"[5388 rows x 17 columns]"
],
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>ts_code</th>\n",
" <th>symbol</th>\n",
" <th>name</th>\n",
" <th>area</th>\n",
" <th>industry</th>\n",
" <th>fullname</th>\n",
" <th>enname</th>\n",
" <th>cnspell</th>\n",
" <th>market</th>\n",
" <th>exchange</th>\n",
" <th>curr_type</th>\n",
" <th>list_status</th>\n",
" <th>list_date</th>\n",
" <th>delist_date</th>\n",
" <th>is_hs</th>\n",
" <th>act_name</th>\n",
" <th>act_ent_type</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>000001.SZ</td>\n",
" <td>1</td>\n",
" <td>平安银行</td>\n",
" <td>深圳</td>\n",
" <td>银行</td>\n",
" <td>平安银行股份有限公司</td>\n",
" <td>Ping An Bank Co., Ltd.</td>\n",
" <td>payh</td>\n",
" <td>主板</td>\n",
" <td>SZSE</td>\n",
" <td>CNY</td>\n",
" <td>L</td>\n",
" <td>19910403</td>\n",
" <td>NaN</td>\n",
" <td>S</td>\n",
" <td>无实际控制人</td>\n",
" <td>无</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>000002.SZ</td>\n",
" <td>2</td>\n",
" <td>万科A</td>\n",
" <td>深圳</td>\n",
" <td>全国地产</td>\n",
" <td>万科企业股份有限公司</td>\n",
" <td>China Vanke Co.,Ltd.</td>\n",
" <td>wka</td>\n",
" <td>主板</td>\n",
" <td>SZSE</td>\n",
" <td>CNY</td>\n",
" <td>L</td>\n",
" <td>19910129</td>\n",
" <td>NaN</td>\n",
" <td>S</td>\n",
" <td>深圳市人民政府国有资产监督管理委员会</td>\n",
" <td>地方国企</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>000004.SZ</td>\n",
" <td>4</td>\n",
" <td>国华网安</td>\n",
" <td>深圳</td>\n",
" <td>软件服务</td>\n",
" <td>深圳国华网安科技股份有限公司</td>\n",
" <td>Shenzhen Guohua Network Security Technology Co...</td>\n",
" <td>ghwa</td>\n",
" <td>主板</td>\n",
" <td>SZSE</td>\n",
" <td>CNY</td>\n",
" <td>L</td>\n",
" <td>19910114</td>\n",
" <td>NaN</td>\n",
" <td>N</td>\n",
" <td>李映彤</td>\n",
" <td>民营企业</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>000006.SZ</td>\n",
" <td>6</td>\n",
" <td>深振业A</td>\n",
" <td>深圳</td>\n",
" <td>区域地产</td>\n",
" <td>深圳市振业(集团)股份有限公司</td>\n",
" <td>Shenzhen Zhenye(Group) Co., Ltd.</td>\n",
" <td>szya</td>\n",
" <td>主板</td>\n",
" <td>SZSE</td>\n",
" <td>CNY</td>\n",
" <td>L</td>\n",
" <td>19920427</td>\n",
" <td>NaN</td>\n",
" <td>S</td>\n",
" <td>深圳市人民政府国有资产监督管理委员会</td>\n",
" <td>地方国企</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>000007.SZ</td>\n",
" <td>7</td>\n",
" <td>全新好</td>\n",
" <td>深圳</td>\n",
" <td>其他商业</td>\n",
" <td>深圳市全新好股份有限公司</td>\n",
" <td>Shenzhen Quanxinhao Co,.Ltd.</td>\n",
" <td>qxh</td>\n",
" <td>主板</td>\n",
" <td>SZSE</td>\n",
" <td>CNY</td>\n",
" <td>L</td>\n",
" <td>19920413</td>\n",
" <td>NaN</td>\n",
" <td>N</td>\n",
" <td>王玩虹</td>\n",
" <td>民营企业</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5383</th>\n",
" <td>920111.BJ</td>\n",
" <td>920111</td>\n",
" <td>聚星科技</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>温州聚星科技股份有限公司</td>\n",
" <td>Wenzhou Juxing Science And Technology Co.,Ltd.</td>\n",
" <td>jxkj</td>\n",
" <td>北交所</td>\n",
" <td>BSE</td>\n",
" <td>CNY</td>\n",
" <td>L</td>\n",
" <td>20241111</td>\n",
" <td>NaN</td>\n",
" <td>N</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5384</th>\n",
" <td>920116.BJ</td>\n",
" <td>920116</td>\n",
" <td>星图测控</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>中科星图测控技术股份有限公司</td>\n",
" <td>Geovis Insighter Technology Co.,Ltd.</td>\n",
" <td>xtck</td>\n",
" <td>北交所</td>\n",
" <td>BSE</td>\n",
" <td>CNY</td>\n",
" <td>L</td>\n",
" <td>20250102</td>\n",
" <td>NaN</td>\n",
" <td>N</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5385</th>\n",
" <td>920118.BJ</td>\n",
" <td>920118</td>\n",
" <td>太湖远大</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>浙江太湖远大新材料股份有限公司</td>\n",
" <td>Zhejiang Taihu Yuanda New Material Co., Ltd</td>\n",
" <td>thyd</td>\n",
" <td>北交所</td>\n",
" <td>BSE</td>\n",
" <td>CNY</td>\n",
" <td>L</td>\n",
" <td>20240822</td>\n",
" <td>NaN</td>\n",
" <td>N</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5386</th>\n",
" <td>920128.BJ</td>\n",
" <td>920128</td>\n",
" <td>胜业电气</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>胜业电气股份有限公司</td>\n",
" <td>Shengye Electric Co., Ltd.</td>\n",
" <td>sydq</td>\n",
" <td>北交所</td>\n",
" <td>BSE</td>\n",
" <td>CNY</td>\n",
" <td>L</td>\n",
" <td>20241129</td>\n",
" <td>NaN</td>\n",
" <td>N</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5387</th>\n",
" <td>689009.SH</td>\n",
" <td>689009</td>\n",
" <td>九号公司-WD</td>\n",
" <td>北京</td>\n",
" <td>摩托车</td>\n",
" <td>九号有限公司</td>\n",
" <td>Ninebot Limited</td>\n",
" <td>jhgs</td>\n",
" <td>科创板</td>\n",
" <td>SSE</td>\n",
" <td>CNY</td>\n",
" <td>L</td>\n",
" <td>20201029</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5388 rows × 17 columns</p>\n",
"</div>"
]
},
"execution_count": 73,
"metadata": {},
"output_type": "execute_result"
}
],
"execution_count": 73
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-01-12T04:08:38.611023Z",
"start_time": "2025-01-12T04:08:38.601858Z"
}
},
"cell_type": "code",
"source": [
"from datetime import datetime\n",
"\n",
"select_df = stock_df[[\"ts_code\", \"list_date\"]]\n",
"select_df[\"list_date\"] = pd.to_datetime(select_df[\"list_date\"], format=\"%Y%m%d\").dt.year\n",
"select_df = select_df[select_df[\"list_date\"] < datetime.now().year - 6]\n",
"select_df.rename(columns={\"ts_code\": \"code\", \"list_date\": \"listing_code\"}, inplace=True)\n",
"select_df.to_csv(\"../temp/select_stock.csv\", index=False)"
],
"id": "e46b093526873c23",
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"C:\\Users\\lanyuanxiaoyao\\AppData\\Local\\Temp\\ipykernel_26584\\1081394513.py:4: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame.\n",
"Try using .loc[row_indexer,col_indexer] = value instead\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" select_df[\"list_date\"] = pd.to_datetime(select_df[\"list_date\"], format=\"%Y%m%d\").dt.year\n"
]
}
],
"execution_count": 77
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-01-12T04:08:54.938873Z",
"start_time": "2025-01-12T04:08:54.932403Z"
}
},
"cell_type": "code",
"source": [
"select_stock_df = pd.read_csv(\"../temp/select_stock.csv\")\n",
"select_df"
],
"id": "dc6a85e6ca6fbc14",
"outputs": [
{
"data": {
"text/plain": [
" code listing_code\n",
"0 000001.SZ 1991\n",
"1 000002.SZ 1991\n",
"2 000004.SZ 1991\n",
"3 000006.SZ 1992\n",
"4 000007.SZ 1992\n",
"... ... ...\n",
"4439 603991.SH 2017\n",
"4441 603993.SH 2012\n",
"4443 603997.SH 2015\n",
"4444 603998.SH 2014\n",
"4445 603999.SH 2015\n",
"\n",
"[3384 rows x 2 columns]"
],
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>code</th>\n",
" <th>listing_code</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>000001.SZ</td>\n",
" <td>1991</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>000002.SZ</td>\n",
" <td>1991</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>000004.SZ</td>\n",
" <td>1991</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>000006.SZ</td>\n",
" <td>1992</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>000007.SZ</td>\n",
" <td>1992</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4439</th>\n",
" <td>603991.SH</td>\n",
" <td>2017</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4441</th>\n",
" <td>603993.SH</td>\n",
" <td>2012</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4443</th>\n",
" <td>603997.SH</td>\n",
" <td>2015</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4444</th>\n",
" <td>603998.SH</td>\n",
" <td>2014</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4445</th>\n",
" <td>603999.SH</td>\n",
" <td>2015</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>3384 rows × 2 columns</p>\n",
"</div>"
]
},
"execution_count": 78,
"metadata": {},
"output_type": "execute_result"
}
],
"execution_count": 78
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.6"
}
},
"nbformat": 4,
"nbformat_minor": 5
}

View File

@@ -0,0 +1,544 @@
{
"cells": [
{
"cell_type": "code",
"id": "initial_id",
"metadata": {
"collapsed": true
},
"source": [
"import pandas as pd\n",
"import tushare as ts\n",
"\n",
"ts_pro = ts.pro_api(token=\"64ebff4fa679167600b905ee45dd88e76f3963c0ff39157f3f085f0e\")"
],
"outputs": [],
"execution_count": null
},
{
"metadata": {},
"cell_type": "code",
"source": [
"def get_balance_sheet_df(start_year, end_year):\n",
" result = ts_pro.balancesheet_vip(period=f\"{start_year}1231\")\n",
" print(f\"Pull balance sheet: {start_year}\")\n",
" for year in range(start_year + 1, end_year + 1):\n",
" print(f\"Pull balance sheet: {year}\")\n",
" period = f\"{year}1231\"\n",
" temp = ts_pro.balancesheet_vip(period=period)\n",
" result = pd.concat([result, temp], ignore_index=True)\n",
" return result\n",
"\n",
"\n",
"def get_income_df(start_year, end_year):\n",
" result = ts_pro.income_vip(period=f\"{start_year}1231\")\n",
" print(f\"Pull income: {start_year}\")\n",
" for year in range(start_year + 1, end_year + 1):\n",
" print(f\"Pull income: {year}\")\n",
" period = f\"{year}1231\"\n",
" temp = ts_pro.income_vip(period=period)\n",
" result = pd.concat([result, temp], ignore_index=True)\n",
" return result\n",
"\n",
"\n",
"def get_cash_flow_df(start_year, end_year):\n",
" result = ts_pro.cashflow_vip(period=f\"{start_year}1231\")\n",
" print(f\"Pull cash flow: {start_year}\")\n",
" for year in range(start_year + 1, end_year + 1):\n",
" print(f\"Pull cash flow: {year}\")\n",
" period = f\"{year}1231\"\n",
" temp = ts_pro.cashflow_vip(period=period)\n",
" result = pd.concat([result, temp], ignore_index=True)\n",
" return result\n",
"\n",
"\n",
"def clean_df(df):\n",
" df = df.drop_duplicates(subset=[\"ts_code\", \"end_date\"])\n",
" df[\"end_date\"] = df[\"end_date\"].str[:4]\n",
" return df"
],
"id": "14a28ff4952f0df8",
"outputs": [],
"execution_count": null
},
{
"metadata": {},
"cell_type": "code",
"source": [
"start_year = 2014\n",
"end_year = 2024"
],
"id": "dc68cde196159626",
"outputs": [],
"execution_count": null
},
{
"metadata": {},
"cell_type": "code",
"source": [
"# 财务负债表\n",
"balance_sheet_df = clean_df(get_balance_sheet_df(start_year, end_year))\n",
"balance_sheet_df.to_csv(\"../temp/balance_sheet.csv\", index=False)"
],
"id": "33cd797a12ad567e",
"outputs": [],
"execution_count": null
},
{
"metadata": {},
"cell_type": "code",
"source": [
"income_df = clean_df(get_income_df(start_year, end_year))\n",
"income_df.to_csv(\"../temp/income.csv\", index=False)"
],
"id": "17306c1524f5e173",
"outputs": [],
"execution_count": null
},
{
"metadata": {},
"cell_type": "code",
"source": [
"cash_flow_df = clean_df(get_cash_flow_df(start_year, end_year))\n",
"cash_flow_df.to_csv(\"../temp/cash_flow.csv\", index=False)"
],
"id": "334dbe20f2047a1e",
"outputs": [],
"execution_count": null
},
{
"metadata": {},
"cell_type": "code",
"source": [
"finance_df = pd.merge(balance_sheet_df, income_df, on=[\"ts_code\", \"end_date\"])\n",
"finance_df = pd.merge(finance_df, cash_flow_df, on=[\"ts_code\", \"end_date\"])\n",
"finance_df.to_csv(\"../temp/finance.csv\", index=False)"
],
"id": "f8bea62f377b5e2",
"outputs": [],
"execution_count": null
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-01-12T12:04:00.424439Z",
"start_time": "2025-01-12T12:04:00.364557Z"
}
},
"cell_type": "code",
"source": "finance_df",
"id": "b14b477ca3c0f720",
"outputs": [
{
"data": {
"text/plain": [
" ts_code ann_date_x f_ann_date_x end_date report_type_x comp_type_x \\\n",
"0 830964.BJ 20180103 20180103 2014 1 1 \n",
"1 834765.BJ 20180105 20180105 2014 1 1 \n",
"2 835174.BJ 20180130 20180130 2014 1 1 \n",
"3 301076.SZ 20180117 20180117 2014 1 1 \n",
"4 601528.SH 20180116 20180116 2014 1 2 \n",
"... ... ... ... ... ... ... \n",
"47434 603260.SH 20240430 20240430 2023 1 1 \n",
"47435 603828.SH 20240430 20240430 2023 1 1 \n",
"47436 002120.SZ 20240430 20240430 2023 1 1 \n",
"47437 000790.SZ 20240430 20240430 2023 1 1 \n",
"47438 000504.SZ 20240430 20240430 2023 1 1 \n",
"\n",
" end_type_x total_share cap_rese undistr_porfit ... \\\n",
"0 4 6.800000e+07 1.949319e+07 5.757873e+06 ... \n",
"1 4 1.500000e+07 2.169516e+07 9.042014e+06 ... \n",
"2 4 5.714286e+07 NaN -7.873967e+06 ... \n",
"3 4 5.000000e+07 NaN 1.800787e+07 ... \n",
"4 4 1.197900e+09 3.048310e+08 1.363431e+09 ... \n",
"... ... ... ... ... ... \n",
"47434 4 1.182207e+09 1.138407e+10 1.921573e+10 ... \n",
"47435 4 5.959602e+08 2.395205e+08 -1.640928e+08 ... \n",
"47436 4 2.899193e+09 2.810602e+09 1.234578e+10 ... \n",
"47437 4 6.281426e+08 7.375118e+07 2.299767e+08 ... \n",
"47438 4 3.115739e+08 4.234729e+08 -5.311005e+08 ... \n",
"\n",
" net_dism_capital_add net_cash_rece_sec credit_impa_loss \\\n",
"0 NaN NaN NaN \n",
"1 NaN NaN NaN \n",
"2 NaN NaN NaN \n",
"3 NaN NaN NaN \n",
"4 NaN NaN NaN \n",
"... ... ... ... \n",
"47434 NaN NaN NaN \n",
"47435 NaN NaN 3.794784e+07 \n",
"47436 NaN NaN 1.401759e+08 \n",
"47437 NaN NaN NaN \n",
"47438 NaN NaN NaN \n",
"\n",
" use_right_asset_dep oth_loss_asset end_bal_cash beg_bal_cash \\\n",
"0 NaN None NaN NaN \n",
"1 NaN None NaN NaN \n",
"2 NaN None NaN NaN \n",
"3 NaN None NaN NaN \n",
"4 NaN None NaN NaN \n",
"... ... ... ... ... \n",
"47434 7.167836e+06 None 1.034290e+09 1.822382e+09 \n",
"47435 4.186533e+06 None 1.255399e+08 1.020296e+08 \n",
"47436 5.239484e+08 None 4.313758e+09 3.507770e+09 \n",
"47437 2.214418e+06 None 1.164838e+08 3.787762e+07 \n",
"47438 3.289952e+06 None 4.937811e+08 2.181183e+08 \n",
"\n",
" end_bal_cash_equ beg_bal_cash_equ update_flag \n",
"0 NaN NaN 0 \n",
"1 NaN NaN 0 \n",
"2 NaN NaN 0 \n",
"3 NaN NaN 1 \n",
"4 NaN NaN 1 \n",
"... ... ... ... \n",
"47434 NaN NaN 1 \n",
"47435 NaN NaN 0 \n",
"47436 NaN NaN 1 \n",
"47437 NaN NaN 0 \n",
"47438 NaN NaN 0 \n",
"\n",
"[47439 rows x 329 columns]"
],
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>ts_code</th>\n",
" <th>ann_date_x</th>\n",
" <th>f_ann_date_x</th>\n",
" <th>end_date</th>\n",
" <th>report_type_x</th>\n",
" <th>comp_type_x</th>\n",
" <th>end_type_x</th>\n",
" <th>total_share</th>\n",
" <th>cap_rese</th>\n",
" <th>undistr_porfit</th>\n",
" <th>...</th>\n",
" <th>net_dism_capital_add</th>\n",
" <th>net_cash_rece_sec</th>\n",
" <th>credit_impa_loss</th>\n",
" <th>use_right_asset_dep</th>\n",
" <th>oth_loss_asset</th>\n",
" <th>end_bal_cash</th>\n",
" <th>beg_bal_cash</th>\n",
" <th>end_bal_cash_equ</th>\n",
" <th>beg_bal_cash_equ</th>\n",
" <th>update_flag</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>830964.BJ</td>\n",
" <td>20180103</td>\n",
" <td>20180103</td>\n",
" <td>2014</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>6.800000e+07</td>\n",
" <td>1.949319e+07</td>\n",
" <td>5.757873e+06</td>\n",
" <td>...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>None</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>834765.BJ</td>\n",
" <td>20180105</td>\n",
" <td>20180105</td>\n",
" <td>2014</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>1.500000e+07</td>\n",
" <td>2.169516e+07</td>\n",
" <td>9.042014e+06</td>\n",
" <td>...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>None</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>835174.BJ</td>\n",
" <td>20180130</td>\n",
" <td>20180130</td>\n",
" <td>2014</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>5.714286e+07</td>\n",
" <td>NaN</td>\n",
" <td>-7.873967e+06</td>\n",
" <td>...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>None</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>301076.SZ</td>\n",
" <td>20180117</td>\n",
" <td>20180117</td>\n",
" <td>2014</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>5.000000e+07</td>\n",
" <td>NaN</td>\n",
" <td>1.800787e+07</td>\n",
" <td>...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>None</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>601528.SH</td>\n",
" <td>20180116</td>\n",
" <td>20180116</td>\n",
" <td>2014</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>4</td>\n",
" <td>1.197900e+09</td>\n",
" <td>3.048310e+08</td>\n",
" <td>1.363431e+09</td>\n",
" <td>...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>None</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>47434</th>\n",
" <td>603260.SH</td>\n",
" <td>20240430</td>\n",
" <td>20240430</td>\n",
" <td>2023</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>1.182207e+09</td>\n",
" <td>1.138407e+10</td>\n",
" <td>1.921573e+10</td>\n",
" <td>...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>7.167836e+06</td>\n",
" <td>None</td>\n",
" <td>1.034290e+09</td>\n",
" <td>1.822382e+09</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>47435</th>\n",
" <td>603828.SH</td>\n",
" <td>20240430</td>\n",
" <td>20240430</td>\n",
" <td>2023</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>5.959602e+08</td>\n",
" <td>2.395205e+08</td>\n",
" <td>-1.640928e+08</td>\n",
" <td>...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>3.794784e+07</td>\n",
" <td>4.186533e+06</td>\n",
" <td>None</td>\n",
" <td>1.255399e+08</td>\n",
" <td>1.020296e+08</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>47436</th>\n",
" <td>002120.SZ</td>\n",
" <td>20240430</td>\n",
" <td>20240430</td>\n",
" <td>2023</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>2.899193e+09</td>\n",
" <td>2.810602e+09</td>\n",
" <td>1.234578e+10</td>\n",
" <td>...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>1.401759e+08</td>\n",
" <td>5.239484e+08</td>\n",
" <td>None</td>\n",
" <td>4.313758e+09</td>\n",
" <td>3.507770e+09</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>47437</th>\n",
" <td>000790.SZ</td>\n",
" <td>20240430</td>\n",
" <td>20240430</td>\n",
" <td>2023</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>6.281426e+08</td>\n",
" <td>7.375118e+07</td>\n",
" <td>2.299767e+08</td>\n",
" <td>...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>2.214418e+06</td>\n",
" <td>None</td>\n",
" <td>1.164838e+08</td>\n",
" <td>3.787762e+07</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>47438</th>\n",
" <td>000504.SZ</td>\n",
" <td>20240430</td>\n",
" <td>20240430</td>\n",
" <td>2023</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>4</td>\n",
" <td>3.115739e+08</td>\n",
" <td>4.234729e+08</td>\n",
" <td>-5.311005e+08</td>\n",
" <td>...</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>3.289952e+06</td>\n",
" <td>None</td>\n",
" <td>4.937811e+08</td>\n",
" <td>2.181183e+08</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>47439 rows × 329 columns</p>\n",
"</div>"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"execution_count": 29
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.6"
}
},
"nbformat": 4,
"nbformat_minor": 5
}