Commit 9ba39f80 authored by Dr.李's avatar Dr.李

fix

parent ee1c5ca5
......@@ -2,7 +2,7 @@
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"execution_count": 5,
"id": "3604e08c-d849-4d0e-aa6d-384657b1b6c8",
"metadata": {},
"outputs": [],
......@@ -13,6 +13,7 @@
" fd_basicinfo,\n",
" fd_typeclass,\n",
" fd_hshkiport,\n",
" fd_assetportfolio,\n",
" nearest_report_date\n",
")\n",
"import pandas as pd"
......@@ -25,8 +26,6 @@
"metadata": {},
"outputs": [],
"source": [
"# 获取回溯的报告日\n",
"\n",
"# 获取回溯的报告日\n",
"\n",
"today = dt.datetime.today()\n",
......@@ -56,265 +55,34 @@
},
{
"cell_type": "code",
"execution_count": 7,
"execution_count": 13,
"id": "79115d35-0712-4432-a73c-29bd5262dda7",
"metadata": {},
"outputs": [],
"source": [
"basic_info = fd_basicinfo(security_ids, current_date)\n",
"type_info = fd_typeclass(security_ids, current_date)\n",
"hkport_info = fd_hshkiport(security_ids, current_date)\n",
"hkport_info = hkport_info[hkport_info.INDUSTRYNAME == \"合计\"]"
"hkport_info = fd_hshkiport(security_ids, report_dates_begin)\n",
"hkport_info = hkport_info[hkport_info.INDUSTRYNAME == \"合计\"].groupby([\"SECURITYID\"], as_index=False)[[\"ACCNETMKTCAP\"]].mean()\n",
"asset_port = fd_assetportfolio(security_ids, report_dates_begin).groupby(\"SECURITYID\", as_index=False)[[\"EQUITYINVERTO\"]].mean()"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "964ecb93-784d-42b0-95b6-66e08b1c51b9",
"metadata": {},
"outputs": [
{
"data": {
"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>SECURITYID</th>\n",
" <th>REPORTDATE</th>\n",
" <th>MVALUE</th>\n",
" <th>ACCNETMKTCAP</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1030004030</td>\n",
" <td>20200930</td>\n",
" <td>5.729386e+07</td>\n",
" <td>9.13</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1030004030</td>\n",
" <td>20201231</td>\n",
" <td>9.348727e+07</td>\n",
" <td>12.81</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1030004030</td>\n",
" <td>20210331</td>\n",
" <td>1.735264e+08</td>\n",
" <td>23.05</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1030004030</td>\n",
" <td>20210630</td>\n",
" <td>1.639447e+07</td>\n",
" <td>15.62</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1030004030</td>\n",
" <td>20210930</td>\n",
" <td>3.454067e+06</td>\n",
" <td>32.85</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>359</th>\n",
" <td>1030009731</td>\n",
" <td>20200930</td>\n",
" <td>1.399008e+07</td>\n",
" <td>95.53</td>\n",
" </tr>\n",
" <tr>\n",
" <th>360</th>\n",
" <td>1030009731</td>\n",
" <td>20201231</td>\n",
" <td>9.791957e+06</td>\n",
" <td>95.17</td>\n",
" </tr>\n",
" <tr>\n",
" <th>361</th>\n",
" <td>1030009731</td>\n",
" <td>20210331</td>\n",
" <td>1.490032e+07</td>\n",
" <td>93.93</td>\n",
" </tr>\n",
" <tr>\n",
" <th>362</th>\n",
" <td>1030009731</td>\n",
" <td>20210630</td>\n",
" <td>2.953495e+07</td>\n",
" <td>92.27</td>\n",
" </tr>\n",
" <tr>\n",
" <th>363</th>\n",
" <td>1030009731</td>\n",
" <td>20210930</td>\n",
" <td>2.886370e+07</td>\n",
" <td>91.64</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>364 rows × 4 columns</p>\n",
"</div>"
],
"text/plain": [
" SECURITYID REPORTDATE MVALUE ACCNETMKTCAP\n",
"0 1030004030 20200930 5.729386e+07 9.13\n",
"1 1030004030 20201231 9.348727e+07 12.81\n",
"2 1030004030 20210331 1.735264e+08 23.05\n",
"3 1030004030 20210630 1.639447e+07 15.62\n",
"4 1030004030 20210930 3.454067e+06 32.85\n",
".. ... ... ... ...\n",
"359 1030009731 20200930 1.399008e+07 95.53\n",
"360 1030009731 20201231 9.791957e+06 95.17\n",
"361 1030009731 20210331 1.490032e+07 93.93\n",
"362 1030009731 20210630 2.953495e+07 92.27\n",
"363 1030009731 20210930 2.886370e+07 91.64\n",
"\n",
"[364 rows x 4 columns]"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"hkport_info.groupby([\"SECURITYID\", \"REPORTDATE\"], as_index=False).sum()"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "c3ffab81-d57d-4d91-9815-fdf50cd2fa76",
"metadata": {},
"outputs": [
{
"data": {
"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>SECURITYID</th>\n",
" <th>INDCLASSCODE</th>\n",
" <th>INDUSTRYCODE</th>\n",
" <th>INDUSTRYNAME</th>\n",
" <th>REPORTDATE</th>\n",
" <th>MVALUE</th>\n",
" <th>ACCNETMKTCAP</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>4306</th>\n",
" <td>1030009731</td>\n",
" <td>2102</td>\n",
" <td>ZZZ</td>\n",
" <td>合计</td>\n",
" <td>20210930</td>\n",
" <td>28863697.51</td>\n",
" <td>91.64</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" SECURITYID INDCLASSCODE INDUSTRYCODE INDUSTRYNAME REPORTDATE \\\n",
"4306 1030009731 2102 ZZZ 合计 20210930 \n",
"\n",
" MVALUE ACCNETMKTCAP \n",
"4306 28863697.51 91.64 "
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sss = hkport_info[hkport_info.SECURITYID == '1030009731']\n",
"\n",
"sss[sss.REPORTDATE == '20210930']"
]
},
{
"cell_type": "code",
"execution_count": 28,
"id": "094c2bee-696b-4ebd-92ec-38d116e0acdb",
"metadata": {},
"outputs": [],
"source": [
"df = pd.merge(type_info, basic_info, on=\"SECURITYID\")"
]
},
{
"cell_type": "code",
"execution_count": 29,
"execution_count": 19,
"id": "0c30cc50-a1c3-4774-84a8-5ab5faca8b67",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array(['标准指数股票型基金', '增强指数股票型基金', 'ETF联接基金', '其他行业股票型基金',\n",
" '偏股型基金(股票上下限60%-95%)', '标准股票型基金', '医药行业股票型基金', '偏债型基金',\n",
" '股票型分级子基金(优先份额)', '股票型分级子基金(进取份额)', '封闭式标准股票型基金'], dtype=object)"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"df.L3NAME.unique()"
"df = pd.merge(basic_info, type_info, on=\"SECURITYID\")\n",
"df = pd.merge(df, asset_port, on=\"SECURITYID\", how=\"left\")\n",
"df = pd.merge(df, hkport_info, on=\"SECURITYID\", how=\"left\")\n",
"df[\"ACCNETMKTCAP\"] = df[\"ACCNETMKTCAP\"].fillna(0)"
]
},
{
"cell_type": "code",
"execution_count": 30,
"execution_count": 23,
"id": "c99e0fe3-7193-449e-b5ee-6cbd0b003035",
"metadata": {},
"outputs": [],
......@@ -322,12 +90,13 @@
"# 分类\n",
"df.loc[(df[\"L3NAME\"].isin([\"其他行业股票型基金\", \"偏股型基金(股票上下限60%-95%)\", '标准股票型基金', '医药行业股票型基金', '封闭式标准股票型基金'])), \"股票型(子类)\"] = \"普通股票型基金\"\n",
"df.loc[(df[\"L3NAME\"].isin([\"标准指数股票型基金\"])), \"股票型(子类)\"] = \"被动指数型基金\"\n",
"df.loc[(df[\"L3NAME\"].isin([\"增强指数股票型基金\"])), \"股票型(子类)\"] = \"增强指数型基金\""
"df.loc[(df[\"L3NAME\"].isin([\"增强指数股票型基金\"])), \"股票型(子类)\"] = \"增强指数型基金\"\n",
"df.loc[(df[\"ACCNETMKTCAP\"] / df[\"EQUITYINVERTO\"] > 0.5), \"股票型(子类)\"] = \"港股通股票型基金\""
]
},
{
"cell_type": "code",
"execution_count": 31,
"execution_count": 24,
"id": "a42b357e-6b87-424b-9ca9-4ce60904b66b",
"metadata": {},
"outputs": [
......@@ -353,17 +122,19 @@
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>SECURITYID</th>\n",
" <th>FDNAME</th>\n",
" <th>SNAMECOMP</th>\n",
" <th>FSYMBOL</th>\n",
" <th>FDNATURE</th>\n",
" <th>INVESTSTYLE</th>\n",
" <th>L1CODE</th>\n",
" <th>L1NAME</th>\n",
" <th>L2CODE</th>\n",
" <th>L2NAME</th>\n",
" <th>L3CODE</th>\n",
" <th>L3NAME</th>\n",
" <th>FDNAME</th>\n",
" <th>SNAMECOMP</th>\n",
" <th>FSYMBOL</th>\n",
" <th>FDNATURE</th>\n",
" <th>INVESTSTYLE</th>\n",
" <th>EQUITYINVERTO</th>\n",
" <th>ACCNETMKTCAP</th>\n",
" </tr>\n",
" <tr>\n",
" <th>股票型(子类)</th>\n",
......@@ -379,6 +150,8 @@
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
......@@ -386,66 +159,98 @@
" <th>增强指数型基金</th>\n",
" <td>63</td>\n",
" <td>63</td>\n",
" <td>45</td>\n",
" <td>63</td>\n",
" <td>63</td>\n",
" <td>63</td>\n",
" <td>63</td>\n",
" <td>63</td>\n",
" <td>63</td>\n",
" <td>63</td>\n",
" <td>45</td>\n",
" <td>63</td>\n",
" <td>63</td>\n",
" <td>60</td>\n",
" <td>63</td>\n",
" </tr>\n",
" <tr>\n",
" <th>普通股票型基金</th>\n",
" <td>217</td>\n",
" <td>217</td>\n",
" <td>217</td>\n",
" <td>217</td>\n",
" <td>217</td>\n",
" <td>217</td>\n",
" <td>217</td>\n",
" <td>217</td>\n",
" <td>66</td>\n",
" <td>217</td>\n",
" <td>217</td>\n",
" <td>217</td>\n",
" <td>207</td>\n",
" <td>207</td>\n",
" <td>60</td>\n",
" <td>207</td>\n",
" <td>207</td>\n",
" <td>207</td>\n",
" <td>207</td>\n",
" <td>207</td>\n",
" <td>207</td>\n",
" <td>207</td>\n",
" <td>207</td>\n",
" <td>207</td>\n",
" <td>206</td>\n",
" <td>207</td>\n",
" </tr>\n",
" <tr>\n",
" <th>港股通股票型基金</th>\n",
" <td>12</td>\n",
" <td>12</td>\n",
" <td>8</td>\n",
" <td>12</td>\n",
" <td>12</td>\n",
" <td>12</td>\n",
" <td>12</td>\n",
" <td>12</td>\n",
" <td>12</td>\n",
" <td>12</td>\n",
" <td>12</td>\n",
" <td>12</td>\n",
" <td>12</td>\n",
" <td>12</td>\n",
" </tr>\n",
" <tr>\n",
" <th>被动指数型基金</th>\n",
" <td>344</td>\n",
" <td>344</td>\n",
" <td>344</td>\n",
" <td>344</td>\n",
" <td>344</td>\n",
" <td>344</td>\n",
" <td>344</td>\n",
" <td>344</td>\n",
" <td>215</td>\n",
" <td>344</td>\n",
" <td>344</td>\n",
" <td>344</td>\n",
" <td>342</td>\n",
" <td>342</td>\n",
" <td>213</td>\n",
" <td>342</td>\n",
" <td>342</td>\n",
" <td>342</td>\n",
" <td>342</td>\n",
" <td>342</td>\n",
" <td>342</td>\n",
" <td>342</td>\n",
" <td>342</td>\n",
" <td>342</td>\n",
" <td>329</td>\n",
" <td>342</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" SECURITYID L1CODE L1NAME L2CODE L2NAME L3CODE L3NAME FDNAME \\\n",
" SECURITYID FDNAME SNAMECOMP FSYMBOL FDNATURE INVESTSTYLE \\\n",
"股票型(子类) \n",
"增强指数型基金 63 63 45 63 63 63 \n",
"普通股票型基金 207 207 60 207 207 207 \n",
"港股通股票型基金 12 12 8 12 12 12 \n",
"被动指数型基金 342 342 213 342 342 342 \n",
"\n",
" L1CODE L1NAME L2CODE L2NAME L3CODE L3NAME EQUITYINVERTO \\\n",
"股票型(子类) \n",
"增强指数型基金 63 63 63 63 63 63 63 63 \n",
"普通股票型基金 217 217 217 217 217 217 217 217 \n",
"被动指数型基金 344 344 344 344 344 344 344 344 \n",
"增强指数型基金 63 63 63 63 63 63 60 \n",
"普通股票型基金 207 207 207 207 207 207 206 \n",
"港股通股票型基金 12 12 12 12 12 12 12 \n",
"被动指数型基金 342 342 342 342 342 342 329 \n",
"\n",
" SNAMECOMP FSYMBOL FDNATURE INVESTSTYLE \n",
" ACCNETMKTCAP \n",
"股票型(子类) \n",
"增强指数型基金 45 63 63 63 \n",
"普通股票型基金 66 217 217 217 \n",
"被动指数型基金 215 344 344 344 "
"增强指数型基金 63 \n",
"普通股票型基金 207 \n",
"港股通股票型基金 12 \n",
"被动指数型基金 342 "
]
},
"execution_count": 31,
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
......@@ -456,7 +261,7 @@
},
{
"cell_type": "code",
"execution_count": 32,
"execution_count": 25,
"id": "3a20a243-ebe0-4410-a3e8-3363e1e793e2",
"metadata": {},
"outputs": [
......@@ -482,17 +287,19 @@
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>SECURITYID</th>\n",
" <th>FDNAME</th>\n",
" <th>SNAMECOMP</th>\n",
" <th>FSYMBOL</th>\n",
" <th>FDNATURE</th>\n",
" <th>INVESTSTYLE</th>\n",
" <th>L1CODE</th>\n",
" <th>L1NAME</th>\n",
" <th>L2CODE</th>\n",
" <th>L2NAME</th>\n",
" <th>L3CODE</th>\n",
" <th>L3NAME</th>\n",
" <th>FDNAME</th>\n",
" <th>SNAMECOMP</th>\n",
" <th>FSYMBOL</th>\n",
" <th>FDNATURE</th>\n",
" <th>INVESTSTYLE</th>\n",
" <th>EQUITYINVERTO</th>\n",
" <th>ACCNETMKTCAP</th>\n",
" <th>股票型(子类)</th>\n",
" </tr>\n",
" </thead>\n",
......@@ -500,81 +307,91 @@
" <tr>\n",
" <th>0</th>\n",
" <td>1030000030</td>\n",
" <td>国泰沪深300指数证券投资基金</td>\n",
" <td>国泰沪深300指数</td>\n",
" <td>020011</td>\n",
" <td>证券投资基金</td>\n",
" <td>指数型</td>\n",
" <td>1</td>\n",
" <td>股票基金</td>\n",
" <td>1.2</td>\n",
" <td>指数股票型基金</td>\n",
" <td>1.2.1</td>\n",
" <td>标准指数股票型基金</td>\n",
" <td>国泰沪深300指数证券投资基金</td>\n",
" <td>国泰沪深300指数</td>\n",
" <td>020011</td>\n",
" <td>证券投资基金</td>\n",
" <td>指数型</td>\n",
" <td>93.975000</td>\n",
" <td>0.0</td>\n",
" <td>被动指数型基金</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1030000034</td>\n",
" <td>华安MSCI中国A股指数增强型证券投资基金</td>\n",
" <td>None</td>\n",
" <td>040002</td>\n",
" <td>证券投资基金</td>\n",
" <td>指数型</td>\n",
" <td>1</td>\n",
" <td>股票基金</td>\n",
" <td>1.2</td>\n",
" <td>指数股票型基金</td>\n",
" <td>1.2.2</td>\n",
" <td>增强指数股票型基金</td>\n",
" <td>华安MSCI中国A股指数增强型证券投资基金</td>\n",
" <td>None</td>\n",
" <td>040002</td>\n",
" <td>证券投资基金</td>\n",
" <td>指数型</td>\n",
" <td>94.049167</td>\n",
" <td>0.0</td>\n",
" <td>增强指数型基金</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1030000045</td>\n",
" <td>博时裕富沪深300指数证券投资基金</td>\n",
" <td>博时沪深300指数</td>\n",
" <td>050002</td>\n",
" <td>证券投资基金</td>\n",
" <td>指数型</td>\n",
" <td>1</td>\n",
" <td>股票基金</td>\n",
" <td>1.2</td>\n",
" <td>指数股票型基金</td>\n",
" <td>1.2.1</td>\n",
" <td>标准指数股票型基金</td>\n",
" <td>博时裕富沪深300指数证券投资基金</td>\n",
" <td>博时沪深300指数</td>\n",
" <td>050002</td>\n",
" <td>证券投资基金</td>\n",
" <td>指数型</td>\n",
" <td>93.689167</td>\n",
" <td>0.0</td>\n",
" <td>被动指数型基金</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1030000045</td>\n",
" <td>博时裕富沪深300指数证券投资基金</td>\n",
" <td>博时沪深300指数</td>\n",
" <td>050002</td>\n",
" <td>证券投资基金</td>\n",
" <td>指数型</td>\n",
" <td>1</td>\n",
" <td>股票基金</td>\n",
" <td>1.2</td>\n",
" <td>指数股票型基金</td>\n",
" <td>1.2.1</td>\n",
" <td>标准指数股票型基金</td>\n",
" <td>博时裕富沪深300指数证券投资基金</td>\n",
" <td>博时沪深300指数</td>\n",
" <td>050002</td>\n",
" <td>证券投资基金</td>\n",
" <td>指数型</td>\n",
" <td>93.689167</td>\n",
" <td>0.0</td>\n",
" <td>被动指数型基金</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1030000096</td>\n",
" <td>易方达上证50指数增强型证券投资基金</td>\n",
" <td>易方达上证50增强</td>\n",
" <td>110003</td>\n",
" <td>证券投资基金</td>\n",
" <td>指数型</td>\n",
" <td>1</td>\n",
" <td>股票基金</td>\n",
" <td>1.2</td>\n",
" <td>指数股票型基金</td>\n",
" <td>1.2.2</td>\n",
" <td>增强指数股票型基金</td>\n",
" <td>易方达上证50指数增强型证券投资基金</td>\n",
" <td>易方达上证50增强</td>\n",
" <td>110003</td>\n",
" <td>证券投资基金</td>\n",
" <td>指数型</td>\n",
" <td>92.823333</td>\n",
" <td>0.0</td>\n",
" <td>增强指数型基金</td>\n",
" </tr>\n",
" <tr>\n",
......@@ -592,123 +409,148 @@
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>933</th>\n",
" <td>1030005090</td>\n",
" <td>1030005100</td>\n",
" <td>信诚中证智能家居指数分级证券投资基金</td>\n",
" <td>信诚中证智能家居指数分级</td>\n",
" <td>165524</td>\n",
" <td>证券投资基金</td>\n",
" <td>指数型</td>\n",
" <td>1</td>\n",
" <td>股票基金</td>\n",
" <td>1.2</td>\n",
" <td>指数股票型基金</td>\n",
" <td>1.2.1</td>\n",
" <td>标准指数股票型基金</td>\n",
" <td>富国中证煤炭指数分级证券投资基金</td>\n",
" <td>富国中证煤炭指数分级</td>\n",
" <td>161032</td>\n",
" <td>证券投资基金</td>\n",
" <td>指数型</td>\n",
" <td>94.028889</td>\n",
" <td>0.0</td>\n",
" <td>被动指数型基金</td>\n",
" </tr>\n",
" <tr>\n",
" <th>934</th>\n",
" <td>1030005095</td>\n",
" <td>1030001329</td>\n",
" <td>信诚沪深300指数分级证券投资基金</td>\n",
" <td>信诚沪深300指数分级</td>\n",
" <td>165515</td>\n",
" <td>证券投资基金</td>\n",
" <td>指数型</td>\n",
" <td>1</td>\n",
" <td>股票基金</td>\n",
" <td>1.2</td>\n",
" <td>指数股票型基金</td>\n",
" <td>1.2.1</td>\n",
" <td>标准指数股票型基金</td>\n",
" <td>信诚中证信息安全指数分级证券投资基金</td>\n",
" <td>信诚中证信息安全指数分级</td>\n",
" <td>165523</td>\n",
" <td>证券投资基金</td>\n",
" <td>指数型</td>\n",
" <td>94.640000</td>\n",
" <td>0.0</td>\n",
" <td>被动指数型基金</td>\n",
" </tr>\n",
" <tr>\n",
" <th>935</th>\n",
" <td>1030005100</td>\n",
" <td>1030002379</td>\n",
" <td>信诚中证800医药指数分级证券投资基金</td>\n",
" <td>信诚中证800医药指数分级</td>\n",
" <td>165519</td>\n",
" <td>证券投资基金</td>\n",
" <td>指数型</td>\n",
" <td>1</td>\n",
" <td>股票基金</td>\n",
" <td>1.2</td>\n",
" <td>指数股票型基金</td>\n",
" <td>1.2.1</td>\n",
" <td>标准指数股票型基金</td>\n",
" <td>信诚中证智能家居指数分级证券投资基金</td>\n",
" <td>信诚中证智能家居指数分级</td>\n",
" <td>165524</td>\n",
" <td>证券投资基金</td>\n",
" <td>指数型</td>\n",
" <td>94.184444</td>\n",
" <td>0.0</td>\n",
" <td>被动指数型基金</td>\n",
" </tr>\n",
" <tr>\n",
" <th>936</th>\n",
" <td>1030005248</td>\n",
" <td>1030001071</td>\n",
" <td>信诚中证500指数分级证券投资基金</td>\n",
" <td>信诚中证500指数</td>\n",
" <td>165511</td>\n",
" <td>证券投资基金</td>\n",
" <td>指数型</td>\n",
" <td>1</td>\n",
" <td>股票基金</td>\n",
" <td>1.2</td>\n",
" <td>指数股票型基金</td>\n",
" <td>1.2.1</td>\n",
" <td>标准指数股票型基金</td>\n",
" <td>华安创业板50指数分级证券投资基金</td>\n",
" <td>华安创业板50指数分级</td>\n",
" <td>160420</td>\n",
" <td>证券投资基金</td>\n",
" <td>指数型</td>\n",
" <td>93.046667</td>\n",
" <td>0.0</td>\n",
" <td>被动指数型基金</td>\n",
" </tr>\n",
" <tr>\n",
" <th>937</th>\n",
" <td>1030005273</td>\n",
" <td>1030002053</td>\n",
" <td>建信央视财经50指数分级发起式证券投资基金</td>\n",
" <td>建信央视财经50指数分级</td>\n",
" <td>165312</td>\n",
" <td>证券投资基金</td>\n",
" <td>指数型</td>\n",
" <td>1</td>\n",
" <td>股票基金</td>\n",
" <td>1.2</td>\n",
" <td>指数股票型基金</td>\n",
" <td>1.2.1</td>\n",
" <td>标准指数股票型基金</td>\n",
" <td>方正富邦中证保险主题指数分级证券投资基金</td>\n",
" <td>方正富邦保险主题指数分级</td>\n",
" <td>167301</td>\n",
" <td>证券投资基金</td>\n",
" <td>指数型</td>\n",
" <td>92.328889</td>\n",
" <td>0.0</td>\n",
" <td>被动指数型基金</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>938 rows × 13 columns</p>\n",
"<p>938 rows × 15 columns</p>\n",
"</div>"
],
"text/plain": [
" SECURITYID L1CODE L1NAME L2CODE L2NAME L3CODE L3NAME \\\n",
"0 1030000030 1 股票基金 1.2 指数股票型基金 1.2.1 标准指数股票型基金 \n",
"1 1030000034 1 股票基金 1.2 指数股票型基金 1.2.2 增强指数股票型基金 \n",
"2 1030000045 1 股票基金 1.2 指数股票型基金 1.2.1 标准指数股票型基金 \n",
"3 1030000045 1 股票基金 1.2 指数股票型基金 1.2.1 标准指数股票型基金 \n",
"4 1030000096 1 股票基金 1.2 指数股票型基金 1.2.2 增强指数股票型基金 \n",
" SECURITYID FDNAME SNAMECOMP FSYMBOL FDNATURE \\\n",
"0 1030000030 国泰沪深300指数证券投资基金 国泰沪深300指数 020011 证券投资基金 \n",
"1 1030000034 华安MSCI中国A股指数增强型证券投资基金 None 040002 证券投资基金 \n",
"2 1030000045 博时裕富沪深300指数证券投资基金 博时沪深300指数 050002 证券投资基金 \n",
"3 1030000045 博时裕富沪深300指数证券投资基金 博时沪深300指数 050002 证券投资基金 \n",
"4 1030000096 易方达上证50指数增强型证券投资基金 易方达上证50增强 110003 证券投资基金 \n",
".. ... ... ... ... ... \n",
"933 1030005100 信诚中证智能家居指数分级证券投资基金 信诚中证智能家居指数分级 165524 证券投资基金 \n",
"934 1030001329 信诚沪深300指数分级证券投资基金 信诚沪深300指数分级 165515 证券投资基金 \n",
"935 1030002379 信诚中证800医药指数分级证券投资基金 信诚中证800医药指数分级 165519 证券投资基金 \n",
"936 1030001071 信诚中证500指数分级证券投资基金 信诚中证500指数 165511 证券投资基金 \n",
"937 1030002053 建信央视财经50指数分级发起式证券投资基金 建信央视财经50指数分级 165312 证券投资基金 \n",
"\n",
" INVESTSTYLE L1CODE L1NAME L2CODE L2NAME L3CODE L3NAME \\\n",
"0 指数型 1 股票基金 1.2 指数股票型基金 1.2.1 标准指数股票型基金 \n",
"1 指数型 1 股票基金 1.2 指数股票型基金 1.2.2 增强指数股票型基金 \n",
"2 指数型 1 股票基金 1.2 指数股票型基金 1.2.1 标准指数股票型基金 \n",
"3 指数型 1 股票基金 1.2 指数股票型基金 1.2.1 标准指数股票型基金 \n",
"4 指数型 1 股票基金 1.2 指数股票型基金 1.2.2 增强指数股票型基金 \n",
".. ... ... ... ... ... ... ... \n",
"933 1030005090 1 股票基金 1.2 指数股票型基金 1.2.1 标准指数股票型基金 \n",
"934 1030005095 1 股票基金 1.2 指数股票型基金 1.2.1 标准指数股票型基金 \n",
"935 1030005100 1 股票基金 1.2 指数股票型基金 1.2.1 标准指数股票型基金 \n",
"936 1030005248 1 股票基金 1.2 指数股票型基金 1.2.1 标准指数股票型基金 \n",
"937 1030005273 1 股票基金 1.2 指数股票型基金 1.2.1 标准指数股票型基金 \n",
"933 指数型 1 股票基金 1.2 指数股票型基金 1.2.1 标准指数股票型基金 \n",
"934 指数型 1 股票基金 1.2 指数股票型基金 1.2.1 标准指数股票型基金 \n",
"935 指数型 1 股票基金 1.2 指数股票型基金 1.2.1 标准指数股票型基金 \n",
"936 指数型 1 股票基金 1.2 指数股票型基金 1.2.1 标准指数股票型基金 \n",
"937 指数型 1 股票基金 1.2 指数股票型基金 1.2.1 标准指数股票型基金 \n",
"\n",
" FDNAME SNAMECOMP FSYMBOL FDNATURE INVESTSTYLE 股票型(子类) \n",
"0 国泰沪深300指数证券投资基金 国泰沪深300指数 020011 证券投资基金 指数型 被动指数型基金 \n",
"1 华安MSCI中国A股指数增强型证券投资基金 None 040002 证券投资基金 指数型 增强指数型基金 \n",
"2 博时裕富沪深300指数证券投资基金 博时沪深300指数 050002 证券投资基金 指数型 被动指数型基金 \n",
"3 博时裕富沪深300指数证券投资基金 博时沪深300指数 050002 证券投资基金 指数型 被动指数型基金 \n",
"4 易方达上证50指数增强型证券投资基金 易方达上证50增强 110003 证券投资基金 指数型 增强指数型基金 \n",
".. ... ... ... ... ... ... \n",
"933 富国中证煤炭指数分级证券投资基金 富国中证煤炭指数分级 161032 证券投资基金 指数型 被动指数型基金 \n",
"934 信诚中证信息安全指数分级证券投资基金 信诚中证信息安全指数分级 165523 证券投资基金 指数型 被动指数型基金 \n",
"935 信诚中证智能家居指数分级证券投资基金 信诚中证智能家居指数分级 165524 证券投资基金 指数型 被动指数型基金 \n",
"936 华安创业板50指数分级证券投资基金 华安创业板50指数分级 160420 证券投资基金 指数型 被动指数型基金 \n",
"937 方正富邦中证保险主题指数分级证券投资基金 方正富邦保险主题指数分级 167301 证券投资基金 指数型 被动指数型基金 \n",
" EQUITYINVERTO ACCNETMKTCAP 股票型(子类) \n",
"0 93.975000 0.0 被动指数型基金 \n",
"1 94.049167 0.0 增强指数型基金 \n",
"2 93.689167 0.0 被动指数型基金 \n",
"3 93.689167 0.0 被动指数型基金 \n",
"4 92.823333 0.0 增强指数型基金 \n",
".. ... ... ... \n",
"933 94.028889 0.0 被动指数型基金 \n",
"934 94.640000 0.0 被动指数型基金 \n",
"935 94.184444 0.0 被动指数型基金 \n",
"936 93.046667 0.0 被动指数型基金 \n",
"937 92.328889 0.0 被动指数型基金 \n",
"\n",
"[938 rows x 13 columns]"
"[938 rows x 15 columns]"
]
},
"execution_count": 32,
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
......
......@@ -2,7 +2,7 @@
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"execution_count": 10,
"id": "25a5db3d-4c9d-46e8-bd5a-88cca84280ba",
"metadata": {},
"outputs": [],
......@@ -11,6 +11,9 @@
"from utility import (\n",
" read_sql,\n",
" fd_basicinfo,\n",
" fd_typeclass,\n",
" fd_hshkiport,\n",
" fd_assetportfolio,\n",
" nearest_report_date\n",
")\n",
"import pandas as pd"
......@@ -18,7 +21,7 @@
},
{
"cell_type": "code",
"execution_count": 2,
"execution_count": 11,
"id": "329e6a8c-4e60-43d7-8314-63cee4f9196a",
"metadata": {},
"outputs": [],
......@@ -33,7 +36,7 @@
},
{
"cell_type": "code",
"execution_count": 3,
"execution_count": 12,
"id": "74246462-2676-4817-8c89-3a024ed8e412",
"metadata": {},
"outputs": [],
......@@ -47,264 +50,56 @@
" L1CODE = 2 AND\n",
" (ENDDATE>='{report_dates_begin}' or ENDDATE = '19000101') \n",
"ORDER BY SECURITYID;\n",
"\"\"\")[\"SECURITYID\"].unique().tolist()\n",
"sec_id_strs = \",\".join([\"'\" + s + \"'\" for s in security_ids])\n",
"\n",
"not_liq_sec_ids = fd_basicinfo(security_ids, current_date)[\"SECURITYID\"].unique().tolist()\n",
"sec_id_strs = \",\".join([\"'\" + s + \"'\" for s in not_liq_sec_ids])"
"\"\"\")[\"SECURITYID\"].unique().tolist()"
]
},
{
"cell_type": "code",
"execution_count": 4,
"execution_count": 13,
"id": "61270089-05d5-4396-829e-651118231b60",
"metadata": {},
"outputs": [],
"source": [
"# 获取相关组合情况\n",
"\n",
"query = f\"\"\"\n",
"SELECT SECURITYID, REPORTDATE, EQUITYINVERTO from TQ_FD_ASSETPORTFOLIO\n",
"WHERE\n",
" REPORTDATE >= '{report_dates_begin}' AND\n",
" ISVALID = 1 AND\n",
" SECURITYID in ({sec_id_strs})\n",
"\"\"\"\n",
"portfolios = read_sql(query).sort_values(\"SECURITYID\")\n",
"agg_port = portfolios.groupby(\"SECURITYID\", as_index=False).mean()\n",
"security_ids_has_port = agg_port.SECURITYID.tolist()"
"basic_info = fd_basicinfo(security_ids, current_date)\n",
"type_info = fd_typeclass(security_ids, current_date)\n",
"hkport_info = fd_hshkiport(security_ids, report_dates_begin)\n",
"hkport_info = hkport_info[hkport_info.INDUSTRYNAME == \"合计\"].groupby([\"SECURITYID\"], as_index=False)[[\"ACCNETMKTCAP\"]].mean()\n",
"asset_port = fd_assetportfolio(security_ids, report_dates_begin).groupby(\"SECURITYID\", as_index=False)[[\"EQUITYINVERTO\"]].mean()"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "73250ba3-83f4-41fe-8e61-2869f7db8662",
"execution_count": 14,
"id": "3968c35a-fa98-479b-a9e2-9cbeec4def1a",
"metadata": {},
"outputs": [],
"source": [
"# 分类\n",
"agg_port.loc[agg_port[\"EQUITYINVERTO\"] >= 70, \"混合型(子类)\"] = \"高权益仓位混合型基金\"\n",
"agg_port.loc[((agg_port[\"EQUITYINVERTO\"] >= 50) & (agg_port[\"EQUITYINVERTO\"] < 70)), \"混合型(子类)\"] = \"中高权益仓位混合型基金\"\n",
"agg_port.loc[((agg_port[\"EQUITYINVERTO\"] >= 30) & (agg_port[\"EQUITYINVERTO\"] < 50)), \"混合型(子类)\"] = \"中权益仓位混合型基金\"\n",
"agg_port.loc[((agg_port[\"EQUITYINVERTO\"] >= 0) & (agg_port[\"EQUITYINVERTO\"] < 30)), \"混合型(子类)\"] = \"低权益仓位混合型基金\""
"df = pd.merge(basic_info, type_info, on=\"SECURITYID\")\n",
"df = pd.merge(df, asset_port, on=\"SECURITYID\", how=\"left\")\n",
"df = pd.merge(df, hkport_info, on=\"SECURITYID\", how=\"left\")\n",
"df[\"ACCNETMKTCAP\"] = df[\"ACCNETMKTCAP\"].fillna(0)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "87566cc8-5684-4c03-b247-3fb9abf72cf6",
"execution_count": 18,
"id": "73250ba3-83f4-41fe-8e61-2869f7db8662",
"metadata": {},
"outputs": [],
"source": [
"agg_port = pd.merge(agg_port, fd_basicinfo(agg_port.SECURITYID.tolist(), current_date))"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "89e23e81-3398-40ab-a410-584b659f5db1",
"metadata": {},
"outputs": [
{
"data": {
"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>SECURITYID</th>\n",
" <th>EQUITYINVERTO</th>\n",
" <th>混合型(子类)</th>\n",
" <th>FDNAME</th>\n",
" <th>SNAMECOMP</th>\n",
" <th>FSYMBOL</th>\n",
" <th>FDNATURE</th>\n",
" <th>INVESTSTYLE</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>40</th>\n",
" <td>1030000079</td>\n",
" <td>17.740000</td>\n",
" <td>低权益仓位混合型基金</td>\n",
" <td>大成财富管理2020生命周期证券投资基金</td>\n",
" <td>None</td>\n",
" <td>090006</td>\n",
" <td>证券投资基金</td>\n",
" <td>稳健成长型</td>\n",
" </tr>\n",
" <tr>\n",
" <th>54</th>\n",
" <td>1030000112</td>\n",
" <td>24.380000</td>\n",
" <td>低权益仓位混合型基金</td>\n",
" <td>国投瑞银融华债券型证券投资基金</td>\n",
" <td>None</td>\n",
" <td>121001</td>\n",
" <td>证券投资基金</td>\n",
" <td>收益型</td>\n",
" </tr>\n",
" <tr>\n",
" <th>62</th>\n",
" <td>1030000124</td>\n",
" <td>19.025833</td>\n",
" <td>低权益仓位混合型基金</td>\n",
" <td>银河收益证券投资基金</td>\n",
" <td>None</td>\n",
" <td>151002</td>\n",
" <td>证券投资基金</td>\n",
" <td>稳健成长型</td>\n",
" </tr>\n",
" <tr>\n",
" <th>94</th>\n",
" <td>1030000180</td>\n",
" <td>26.726667</td>\n",
" <td>低权益仓位混合型基金</td>\n",
" <td>南方宝元债券型基金</td>\n",
" <td>南方宝元债券</td>\n",
" <td>202101</td>\n",
" <td>证券投资基金</td>\n",
" <td>稳健成长型</td>\n",
" </tr>\n",
" <tr>\n",
" <th>95</th>\n",
" <td>1030000185</td>\n",
" <td>1.710000</td>\n",
" <td>低权益仓位混合型基金</td>\n",
" <td>鹏华弘泰灵活配置混合型证券投资基金</td>\n",
" <td>鹏华弘泰灵活配置混合</td>\n",
" <td>206001</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",
" </tr>\n",
" <tr>\n",
" <th>2067</th>\n",
" <td>1030009757</td>\n",
" <td>23.222500</td>\n",
" <td>低权益仓位混合型基金</td>\n",
" <td>东方价值挖掘灵活配置混合型证券投资基金</td>\n",
" <td>东方价值挖掘灵活配置混合</td>\n",
" <td>004166</td>\n",
" <td>证券投资基金</td>\n",
" <td>稳健成长型</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2070</th>\n",
" <td>1030009810</td>\n",
" <td>22.155833</td>\n",
" <td>低权益仓位混合型基金</td>\n",
" <td>易方达瑞富灵活配置混合型证券投资基金</td>\n",
" <td>易方达瑞富混合</td>\n",
" <td>001745</td>\n",
" <td>证券投资基金</td>\n",
" <td>稳健成长型</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2071</th>\n",
" <td>1030009811</td>\n",
" <td>22.155833</td>\n",
" <td>低权益仓位混合型基金</td>\n",
" <td>易方达瑞富灵活配置混合型证券投资基金</td>\n",
" <td>易方达瑞富混合</td>\n",
" <td>001746</td>\n",
" <td>证券投资基金</td>\n",
" <td>稳健成长型</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2072</th>\n",
" <td>1030009813</td>\n",
" <td>21.400833</td>\n",
" <td>低权益仓位混合型基金</td>\n",
" <td>南方安康混合型证券投资基金</td>\n",
" <td>None</td>\n",
" <td>004517</td>\n",
" <td>证券投资基金</td>\n",
" <td>稳健成长型</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2081</th>\n",
" <td>1030013275</td>\n",
" <td>7.011667</td>\n",
" <td>低权益仓位混合型基金</td>\n",
" <td>易方达裕惠回报定期开放式混合型发起式证券投资基金</td>\n",
" <td>None</td>\n",
" <td>000436</td>\n",
" <td>证券投资基金</td>\n",
" <td>稳健成长型</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>508 rows × 8 columns</p>\n",
"</div>"
],
"text/plain": [
" SECURITYID EQUITYINVERTO 混合型(子类) FDNAME \\\n",
"40 1030000079 17.740000 低权益仓位混合型基金 大成财富管理2020生命周期证券投资基金 \n",
"54 1030000112 24.380000 低权益仓位混合型基金 国投瑞银融华债券型证券投资基金 \n",
"62 1030000124 19.025833 低权益仓位混合型基金 银河收益证券投资基金 \n",
"94 1030000180 26.726667 低权益仓位混合型基金 南方宝元债券型基金 \n",
"95 1030000185 1.710000 低权益仓位混合型基金 鹏华弘泰灵活配置混合型证券投资基金 \n",
"... ... ... ... ... \n",
"2067 1030009757 23.222500 低权益仓位混合型基金 东方价值挖掘灵活配置混合型证券投资基金 \n",
"2070 1030009810 22.155833 低权益仓位混合型基金 易方达瑞富灵活配置混合型证券投资基金 \n",
"2071 1030009811 22.155833 低权益仓位混合型基金 易方达瑞富灵活配置混合型证券投资基金 \n",
"2072 1030009813 21.400833 低权益仓位混合型基金 南方安康混合型证券投资基金 \n",
"2081 1030013275 7.011667 低权益仓位混合型基金 易方达裕惠回报定期开放式混合型发起式证券投资基金 \n",
"\n",
" SNAMECOMP FSYMBOL FDNATURE INVESTSTYLE \n",
"40 None 090006 证券投资基金 稳健成长型 \n",
"54 None 121001 证券投资基金 收益型 \n",
"62 None 151002 证券投资基金 稳健成长型 \n",
"94 南方宝元债券 202101 证券投资基金 稳健成长型 \n",
"95 鹏华弘泰灵活配置混合 206001 证券投资基金 稳健成长型 \n",
"... ... ... ... ... \n",
"2067 东方价值挖掘灵活配置混合 004166 证券投资基金 稳健成长型 \n",
"2070 易方达瑞富混合 001745 证券投资基金 稳健成长型 \n",
"2071 易方达瑞富混合 001746 证券投资基金 稳健成长型 \n",
"2072 None 004517 证券投资基金 稳健成长型 \n",
"2081 None 000436 证券投资基金 稳健成长型 \n",
"\n",
"[508 rows x 8 columns]"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"agg_port.loc[agg_port[\"混合型(子类)\"] == \"低权益仓位混合型基金\", :]"
"# 分类\n",
"df.loc[df[\"EQUITYINVERTO\"] >= 70, \"混合型(子类)\"] = \"高权益仓位混合型基金\"\n",
"df.loc[((df[\"EQUITYINVERTO\"] >= 50) & (df[\"EQUITYINVERTO\"] < 70)), \"混合型(子类)\"] = \"中高权益仓位混合型基金\"\n",
"df.loc[((df[\"EQUITYINVERTO\"] >= 30) & (df[\"EQUITYINVERTO\"] < 50)), \"混合型(子类)\"] = \"中权益仓位混合型基金\"\n",
"df.loc[((df[\"EQUITYINVERTO\"] >= 0) & (df[\"EQUITYINVERTO\"] < 30)), \"混合型(子类)\"] = \"低权益仓位混合型基金\"\n",
"df.loc[(df[\"ACCNETMKTCAP\"] / df[\"EQUITYINVERTO\"] > 0.5), \"混合型(子类)\"] = \"港股通混合型基金\""
]
},
{
"cell_type": "code",
"execution_count": 9,
"execution_count": 19,
"id": "a27e2473-ddf5-4883-bb50-6fe46914d3da",
"metadata": {},
"outputs": [
......@@ -339,19 +134,23 @@
" <tbody>\n",
" <tr>\n",
" <th>中权益仓位混合型基金</th>\n",
" <td>144</td>\n",
" <td>167</td>\n",
" </tr>\n",
" <tr>\n",
" <th>中高权益仓位混合型基金</th>\n",
" <td>197</td>\n",
" <td>240</td>\n",
" </tr>\n",
" <tr>\n",
" <th>低权益仓位混合型基金</th>\n",
" <td>508</td>\n",
" <td>625</td>\n",
" </tr>\n",
" <tr>\n",
" <th>港股通混合型基金</th>\n",
" <td>17</td>\n",
" </tr>\n",
" <tr>\n",
" <th>高权益仓位混合型基金</th>\n",
" <td>1205</td>\n",
" <td>1661</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
......@@ -360,29 +159,22 @@
"text/plain": [
" FSYMBOL\n",
"混合型(子类) \n",
"中权益仓位混合型基金 144\n",
"中高权益仓位混合型基金 197\n",
"低权益仓位混合型基金 508\n",
"高权益仓位混合型基金 1205"
"中权益仓位混合型基金 167\n",
"中高权益仓位混合型基金 240\n",
"低权益仓位混合型基金 625\n",
"港股通混合型基金 17\n",
"高权益仓位混合型基金 1661"
]
},
"execution_count": 9,
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"agg_port.groupby(\"混合型(子类)\")[[\"FSYMBOL\"]].count()"
"df.groupby(\"混合型(子类)\")[[\"FSYMBOL\"]].count()"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "6ee9ba23-6c27-4fbf-bd56-ed95404c4bee",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
......
......@@ -95,7 +95,7 @@ def fd_hshkiport(security_ids, report_dates_begin):
def fd_assetportfolio(security_ids, report_dates_begin):
# 获取相关组合情况
f isinstance(security_ids, str):
if isinstance(security_ids, str):
sec_id_strs = security_ids
else:
sec_id_strs = ",".join(["'" + s + "'" for s in security_ids])
......@@ -107,4 +107,4 @@ def fd_assetportfolio(security_ids, report_dates_begin):
ISVALID = 1 AND
SECURITYID in ({sec_id_strs})
"""
return = read_sql(query).sort_values("SECURITYID")
return read_sql(query).sort_values("SECURITYID")
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment