Commit 2efc48ff authored by Dr.李's avatar Dr.李

update category

parent aaac4c26
......@@ -257,14 +257,13 @@
"outputs": [],
"source": [
"# 分类\n",
"df[\"混合型(子类)\"] = pd.NA\n",
"flag = df[\"ACCNETMKTCAP\"] / df[\"EQUITYINVERTO\"] > 0.5\n",
"df.loc[flag, \"混合型(子类)\"] = \"港股通混合型基金\"\n",
"df.loc[(~flag) & (df[\"EQUITYINVERTO\"] >= 70), \"混合型(子类)\"] = \"高权益仓位混合型基金\"\n",
"df.loc[((~flag) & (df[\"EQUITYINVERTO\"] >= 50) & (df[\"EQUITYINVERTO\"] < 70)), \"混合型(子类)\"] = \"中高权益仓位混合型基金\"\n",
"df.loc[((~flag) & (df[\"EQUITYINVERTO\"] >= 30) & (df[\"EQUITYINVERTO\"] < 50)), \"混合型(子类)\"] = \"中权益仓位混合型基金\"\n",
"df.loc[((~flag) & (df[\"EQUITYINVERTO\"] >= 0) & (df[\"EQUITYINVERTO\"] < 30)), \"混合型(子类)\"] = \"低权益仓位混合型基金\"\n",
"df.loc[((~flag) & (pd.isnull(df[\"混合型(子类)\"]))), \"混合型(子类)\"] = \"其他混合型基金\"\n",
"df = df.sort_values(\"SECURITYID\").dropna(subset=[\"混合型(子类)\"])"
"df.loc[(~flag) & (df[\"EQUITYINVERTO\"] >= 70) & (pd.isnull(df[\"混合型(子类)\"])), \"混合型(子类)\"] = \"高权益仓位混合型基金\"\n",
"df.loc[((~flag) & (df[\"EQUITYINVERTO\"] >= 50) & (df[\"EQUITYINVERTO\"] < 70)) & (pd.isnull(df[\"混合型(子类)\"])), \"混合型(子类)\"] = \"中高权益仓位混合型基金\"\n",
"df.loc[((~flag) & (df[\"EQUITYINVERTO\"] >= 30) & (df[\"EQUITYINVERTO\"] < 50)) & (pd.isnull(df[\"混合型(子类)\"])), \"混合型(子类)\"] = \"中权益仓位混合型基金\"\n",
"df.loc[(pd.isnull(df[\"混合型(子类)\"])), \"混合型(子类)\"] = \"低权益仓位混合型基金\""
]
},
{
......@@ -314,57 +313,48 @@
" <tbody>\n",
" <tr>\n",
" <th>中权益仓位混合型基金</th>\n",
" <td>353</td>\n",
" <td>353</td>\n",
" <td>353</td>\n",
" <td>353</td>\n",
" <td>353</td>\n",
" <td>353</td>\n",
" <td>389</td>\n",
" <td>389</td>\n",
" <td>389</td>\n",
" <td>389</td>\n",
" <td>389</td>\n",
" <td>389</td>\n",
" </tr>\n",
" <tr>\n",
" <th>中高权益仓位混合型基金</th>\n",
" <td>481</td>\n",
" <td>481</td>\n",
" <td>481</td>\n",
" <td>481</td>\n",
" <td>481</td>\n",
" <td>481</td>\n",
" <td>588</td>\n",
" <td>588</td>\n",
" <td>588</td>\n",
" <td>588</td>\n",
" <td>588</td>\n",
" <td>588</td>\n",
" </tr>\n",
" <tr>\n",
" <th>低权益仓位混合型基金</th>\n",
" <td>1466</td>\n",
" <td>1466</td>\n",
" <td>1466</td>\n",
" <td>1466</td>\n",
" <td>1466</td>\n",
" <td>1466</td>\n",
" </tr>\n",
" <tr>\n",
" <th>其他混合型基金</th>\n",
" <td>761</td>\n",
" <td>761</td>\n",
" <td>761</td>\n",
" <td>761</td>\n",
" <td>0</td>\n",
" <td>761</td>\n",
" <td>1970</td>\n",
" <td>1970</td>\n",
" <td>1970</td>\n",
" <td>1970</td>\n",
" <td>1599</td>\n",
" <td>1970</td>\n",
" </tr>\n",
" <tr>\n",
" <th>港股通混合型基金</th>\n",
" <td>81</td>\n",
" <td>81</td>\n",
" <td>81</td>\n",
" <td>81</td>\n",
" <td>81</td>\n",
" <td>81</td>\n",
" <td>91</td>\n",
" <td>91</td>\n",
" <td>91</td>\n",
" <td>91</td>\n",
" <td>91</td>\n",
" <td>91</td>\n",
" </tr>\n",
" <tr>\n",
" <th>高权益仓位混合型基金</th>\n",
" <td>3301</td>\n",
" <td>3301</td>\n",
" <td>3301</td>\n",
" <td>3301</td>\n",
" <td>3301</td>\n",
" <td>3301</td>\n",
" <td>3405</td>\n",
" <td>3405</td>\n",
" <td>3405</td>\n",
" <td>3405</td>\n",
" <td>3405</td>\n",
" <td>3405</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
......@@ -373,21 +363,19 @@
"text/plain": [
" SECURITYID BEGINDATE ENDDATE CLASSCODE EQUITYINVERTO \\\n",
"混合型(子类) \n",
"中权益仓位混合型基金 353 353 353 353 353 \n",
"中高权益仓位混合型基金 481 481 481 481 481 \n",
"低权益仓位混合型基金 1466 1466 1466 1466 1466 \n",
"其他混合型基金 761 761 761 761 0 \n",
"港股通混合型基金 81 81 81 81 81 \n",
"高权益仓位混合型基金 3301 3301 3301 3301 3301 \n",
"中权益仓位混合型基金 389 389 389 389 389 \n",
"中高权益仓位混合型基金 588 588 588 588 588 \n",
"低权益仓位混合型基金 1970 1970 1970 1970 1599 \n",
"港股通混合型基金 91 91 91 91 91 \n",
"高权益仓位混合型基金 3405 3405 3405 3405 3405 \n",
"\n",
" ACCNETMKTCAP \n",
"混合型(子类) \n",
"中权益仓位混合型基金 353 \n",
"中高权益仓位混合型基金 481 \n",
"低权益仓位混合型基金 1466 \n",
"其他混合型基金 761 \n",
"港股通混合型基金 81 \n",
"高权益仓位混合型基金 3301 "
"中权益仓位混合型基金 389 \n",
"中高权益仓位混合型基金 588 \n",
"低权益仓位混合型基金 1970 \n",
"港股通混合型基金 91 \n",
"高权益仓位混合型基金 3405 "
]
},
"execution_count": 8,
......@@ -435,13 +423,13 @@
" else:\n",
" df[\"ACCNETMKTCAP\"] = 0.0\n",
" \n",
" df[\"混合型(子类)\"] = pd.NA\n",
" flag = df[\"ACCNETMKTCAP\"] / df[\"EQUITYINVERTO\"] > 0.5\n",
" df.loc[flag, \"混合型(子类)\"] = \"港股通混合型基金\"\n",
" df.loc[(~flag) & (df[\"EQUITYINVERTO\"] >= 70), \"混合型(子类)\"] = \"高权益仓位混合型基金\"\n",
" df.loc[((~flag) & (df[\"EQUITYINVERTO\"] >= 50) & (df[\"EQUITYINVERTO\"] < 70)), \"混合型(子类)\"] = \"中高权益仓位混合型基金\"\n",
" df.loc[((~flag) & (df[\"EQUITYINVERTO\"] >= 30) & (df[\"EQUITYINVERTO\"] < 50)), \"混合型(子类)\"] = \"中权益仓位混合型基金\"\n",
" df.loc[((~flag) & (df[\"EQUITYINVERTO\"] >= 0) & (df[\"EQUITYINVERTO\"] < 30)), \"混合型(子类)\"] = \"低权益仓位混合型基金\"\n",
" df.loc[((~flag) & (pd.isnull(df[\"混合型(子类)\"]))), \"混合型(子类)\"] = \"其他混合型基金\"\n",
" df.loc[(~flag) & (df[\"EQUITYINVERTO\"] >= 70) & (pd.isnull(df[\"混合型(子类)\"])), \"混合型(子类)\"] = \"高权益仓位混合型基金\"\n",
" df.loc[((~flag) & (df[\"EQUITYINVERTO\"] >= 50) & (df[\"EQUITYINVERTO\"] < 70)) & (pd.isnull(df[\"混合型(子类)\"])), \"混合型(子类)\"] = \"中高权益仓位混合型基金\"\n",
" df.loc[((~flag) & (df[\"EQUITYINVERTO\"] >= 30) & (df[\"EQUITYINVERTO\"] < 50)) & (pd.isnull(df[\"混合型(子类)\"])), \"混合型(子类)\"] = \"中权益仓位混合型基金\"\n",
" df.loc[(pd.isnull(df[\"混合型(子类)\"])), \"混合型(子类)\"] = \"低权益仓位混合型基金\"\n",
"\n",
" return df.sort_values(\"SECURITYID\").dropna(subset=[\"混合型(子类)\"])"
]
......@@ -456,7 +444,7 @@
"name": "stdout",
"output_type": "stream",
"text": [
"Wall time: 9.49 s\n"
"Wall time: 8.34 s\n"
]
},
{
......@@ -500,57 +488,48 @@
" <tbody>\n",
" <tr>\n",
" <th>中权益仓位混合型基金</th>\n",
" <td>361</td>\n",
" <td>361</td>\n",
" <td>361</td>\n",
" <td>361</td>\n",
" <td>361</td>\n",
" <td>361</td>\n",
" <td>389</td>\n",
" <td>389</td>\n",
" <td>389</td>\n",
" <td>389</td>\n",
" <td>389</td>\n",
" <td>389</td>\n",
" </tr>\n",
" <tr>\n",
" <th>中高权益仓位混合型基金</th>\n",
" <td>503</td>\n",
" <td>503</td>\n",
" <td>503</td>\n",
" <td>503</td>\n",
" <td>503</td>\n",
" <td>503</td>\n",
" <td>588</td>\n",
" <td>588</td>\n",
" <td>588</td>\n",
" <td>588</td>\n",
" <td>588</td>\n",
" <td>588</td>\n",
" </tr>\n",
" <tr>\n",
" <th>低权益仓位混合型基金</th>\n",
" <td>1463</td>\n",
" <td>1463</td>\n",
" <td>1463</td>\n",
" <td>1463</td>\n",
" <td>1463</td>\n",
" <td>1463</td>\n",
" </tr>\n",
" <tr>\n",
" <th>其他混合型基金</th>\n",
" <td>761</td>\n",
" <td>761</td>\n",
" <td>761</td>\n",
" <td>761</td>\n",
" <td>0</td>\n",
" <td>761</td>\n",
" <td>1970</td>\n",
" <td>1970</td>\n",
" <td>1970</td>\n",
" <td>1970</td>\n",
" <td>1599</td>\n",
" <td>1970</td>\n",
" </tr>\n",
" <tr>\n",
" <th>港股通混合型基金</th>\n",
" <td>82</td>\n",
" <td>82</td>\n",
" <td>82</td>\n",
" <td>82</td>\n",
" <td>82</td>\n",
" <td>82</td>\n",
" <td>91</td>\n",
" <td>91</td>\n",
" <td>91</td>\n",
" <td>91</td>\n",
" <td>91</td>\n",
" <td>91</td>\n",
" </tr>\n",
" <tr>\n",
" <th>高权益仓位混合型基金</th>\n",
" <td>3273</td>\n",
" <td>3273</td>\n",
" <td>3273</td>\n",
" <td>3273</td>\n",
" <td>3273</td>\n",
" <td>3273</td>\n",
" <td>3405</td>\n",
" <td>3405</td>\n",
" <td>3405</td>\n",
" <td>3405</td>\n",
" <td>3405</td>\n",
" <td>3405</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
......@@ -559,21 +538,19 @@
"text/plain": [
" SECURITYID BEGINDATE ENDDATE CLASSCODE EQUITYINVERTO \\\n",
"混合型(子类) \n",
"中权益仓位混合型基金 361 361 361 361 361 \n",
"中高权益仓位混合型基金 503 503 503 503 503 \n",
"低权益仓位混合型基金 1463 1463 1463 1463 1463 \n",
"其他混合型基金 761 761 761 761 0 \n",
"港股通混合型基金 82 82 82 82 82 \n",
"高权益仓位混合型基金 3273 3273 3273 3273 3273 \n",
"中权益仓位混合型基金 389 389 389 389 389 \n",
"中高权益仓位混合型基金 588 588 588 588 588 \n",
"低权益仓位混合型基金 1970 1970 1970 1970 1599 \n",
"港股通混合型基金 91 91 91 91 91 \n",
"高权益仓位混合型基金 3405 3405 3405 3405 3405 \n",
"\n",
" ACCNETMKTCAP \n",
"混合型(子类) \n",
"中权益仓位混合型基金 361 \n",
"中高权益仓位混合型基金 503 \n",
"低权益仓位混合型基金 1463 \n",
"其他混合型基金 761 \n",
"港股通混合型基金 82 \n",
"高权益仓位混合型基金 3273 "
"中权益仓位混合型基金 389 \n",
"中高权益仓位混合型基金 588 \n",
"低权益仓位混合型基金 1970 \n",
"港股通混合型基金 91 \n",
"高权益仓位混合型基金 3405 "
]
},
"execution_count": 10,
......@@ -584,7 +561,7 @@
"source": [
"%%time\n",
"\n",
"create_mutua_fund_info(\"20220212\").groupby( \"混合型(子类)\").count()"
"create_mutua_fund_info(current_date).groupby( \"混合型(子类)\").count()"
]
},
{
......@@ -713,7 +690,6 @@
" <th>中权益仓位混合型基金</th>\n",
" <th>中高权益仓位混合型基金</th>\n",
" <th>低权益仓位混合型基金</th>\n",
" <th>其他混合型基金</th>\n",
" <th>港股通混合型基金</th>\n",
" <th>高权益仓位混合型基金</th>\n",
" </tr>\n",
......@@ -724,297 +700,268 @@
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>20150430</th>\n",
" <td>0.258924</td>\n",
" <td>0.346401</td>\n",
" <td>0.086018</td>\n",
" <td>0.276533</td>\n",
" <td>0.348613</td>\n",
" <td>0.192687</td>\n",
" <td>NaN</td>\n",
" <td>0.433396</td>\n",
" <td>0.437973</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20150731</th>\n",
" <td>0.017399</td>\n",
" <td>-0.064522</td>\n",
" <td>0.017399</td>\n",
" <td>-0.004709</td>\n",
" <td>0.021432</td>\n",
" <td>-0.062666</td>\n",
" <td>-0.012357</td>\n",
" <td>NaN</td>\n",
" <td>-0.123440</td>\n",
" <td>-0.126223</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20151030</th>\n",
" <td>0.016467</td>\n",
" <td>0.007627</td>\n",
" <td>0.011661</td>\n",
" <td>0.012797</td>\n",
" <td>0.018649</td>\n",
" <td>0.008593</td>\n",
" <td>0.010092</td>\n",
" <td>NaN</td>\n",
" <td>0.002940</td>\n",
" <td>0.002864</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20160129</th>\n",
" <td>-0.110890</td>\n",
" <td>-0.133252</td>\n",
" <td>-0.003947</td>\n",
" <td>-0.059547</td>\n",
" <td>-0.112435</td>\n",
" <td>-0.133801</td>\n",
" <td>-0.025787</td>\n",
" <td>-0.109091</td>\n",
" <td>-0.165323</td>\n",
" <td>-0.166866</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20160429</th>\n",
" <td>0.051802</td>\n",
" <td>0.070901</td>\n",
" <td>0.018104</td>\n",
" <td>0.056592</td>\n",
" <td>0.051843</td>\n",
" <td>0.071904</td>\n",
" <td>0.028702</td>\n",
" <td>0.049075</td>\n",
" <td>0.095294</td>\n",
" <td>0.094158</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20160729</th>\n",
" <td>0.031522</td>\n",
" <td>0.037971</td>\n",
" <td>0.020375</td>\n",
" <td>0.011282</td>\n",
" <td>0.030047</td>\n",
" <td>0.038049</td>\n",
" <td>0.023101</td>\n",
" <td>0.048199</td>\n",
" <td>0.043090</td>\n",
" <td>0.042416</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20161031</th>\n",
" <td>0.020561</td>\n",
" <td>0.023523</td>\n",
" <td>0.011960</td>\n",
" <td>0.008223</td>\n",
" <td>0.020888</td>\n",
" <td>0.022911</td>\n",
" <td>0.013596</td>\n",
" <td>0.070950</td>\n",
" <td>0.027626</td>\n",
" <td>0.027520</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20170126</th>\n",
" <td>-0.024257</td>\n",
" <td>-0.028126</td>\n",
" <td>-0.004836</td>\n",
" <td>-0.014183</td>\n",
" <td>-0.025702</td>\n",
" <td>-0.028334</td>\n",
" <td>-0.007063</td>\n",
" <td>0.032046</td>\n",
" <td>-0.042512</td>\n",
" <td>-0.043404</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20170428</th>\n",
" <td>0.013941</td>\n",
" <td>0.026915</td>\n",
" <td>0.012193</td>\n",
" <td>0.023067</td>\n",
" <td>0.015067</td>\n",
" <td>0.026604</td>\n",
" <td>0.014594</td>\n",
" <td>0.044481</td>\n",
" <td>0.029404</td>\n",
" <td>0.028439</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20170731</th>\n",
" <td>0.038146</td>\n",
" <td>0.037378</td>\n",
" <td>0.024416</td>\n",
" <td>0.012130</td>\n",
" <td>0.041631</td>\n",
" <td>0.039265</td>\n",
" <td>0.024902</td>\n",
" <td>0.078740</td>\n",
" <td>0.038528</td>\n",
" <td>0.038031</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20171031</th>\n",
" <td>0.046018</td>\n",
" <td>0.067619</td>\n",
" <td>0.024014</td>\n",
" <td>0.029962</td>\n",
" <td>0.047595</td>\n",
" <td>0.068377</td>\n",
" <td>0.029063</td>\n",
" <td>0.056801</td>\n",
" <td>0.086917</td>\n",
" <td>0.086614</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20180131</th>\n",
" <td>0.024187</td>\n",
" <td>0.014976</td>\n",
" <td>0.023043</td>\n",
" <td>0.048250</td>\n",
" <td>0.028453</td>\n",
" <td>0.018477</td>\n",
" <td>0.020796</td>\n",
" <td>0.068981</td>\n",
" <td>0.004281</td>\n",
" <td>0.003799</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20180427</th>\n",
" <td>-0.045118</td>\n",
" <td>-0.049719</td>\n",
" <td>-0.012853</td>\n",
" <td>-0.022178</td>\n",
" <td>-0.045357</td>\n",
" <td>-0.049265</td>\n",
" <td>-0.017824</td>\n",
" <td>-0.076809</td>\n",
" <td>-0.060823</td>\n",
" <td>-0.060568</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20180731</th>\n",
" <td>-0.026585</td>\n",
" <td>-0.040295</td>\n",
" <td>0.005816</td>\n",
" <td>0.016653</td>\n",
" <td>-0.025896</td>\n",
" <td>-0.039902</td>\n",
" <td>0.000766</td>\n",
" <td>0.000361</td>\n",
" <td>-0.050581</td>\n",
" <td>-0.050714</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20181031</th>\n",
" <td>-0.081243</td>\n",
" <td>-0.112593</td>\n",
" <td>-0.018845</td>\n",
" <td>-0.000366</td>\n",
" <td>-0.081167</td>\n",
" <td>-0.112553</td>\n",
" <td>-0.030007</td>\n",
" <td>-0.109172</td>\n",
" <td>-0.144392</td>\n",
" <td>-0.144163</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20190131</th>\n",
" <td>0.012458</td>\n",
" <td>0.010629</td>\n",
" <td>0.015280</td>\n",
" <td>0.013863</td>\n",
" <td>0.012892</td>\n",
" <td>0.010372</td>\n",
" <td>0.015457</td>\n",
" <td>0.030933</td>\n",
" <td>0.014424</td>\n",
" <td>0.014041</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20190430</th>\n",
" <td>0.113274</td>\n",
" <td>0.172182</td>\n",
" <td>0.040222</td>\n",
" <td>0.030576</td>\n",
" <td>0.112640</td>\n",
" <td>0.171685</td>\n",
" <td>0.057924</td>\n",
" <td>0.123257</td>\n",
" <td>0.218801</td>\n",
" <td>0.218478</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20190731</th>\n",
" <td>0.018430</td>\n",
" <td>0.014272</td>\n",
" <td>0.023151</td>\n",
" <td>0.011591</td>\n",
" <td>0.018153</td>\n",
" <td>0.014009</td>\n",
" <td>0.022219</td>\n",
" <td>-0.016889</td>\n",
" <td>0.017877</td>\n",
" <td>0.017960</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20191031</th>\n",
" <td>0.034795</td>\n",
" <td>0.058042</td>\n",
" <td>0.018361</td>\n",
" <td>0.005970</td>\n",
" <td>0.034175</td>\n",
" <td>0.057166</td>\n",
" <td>0.024154</td>\n",
" <td>0.048366</td>\n",
" <td>0.073178</td>\n",
" <td>0.073511</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20200123</th>\n",
" <td>0.064915</td>\n",
" <td>0.088269</td>\n",
" <td>0.033939</td>\n",
" <td>0.014502</td>\n",
" <td>0.064651</td>\n",
" <td>0.088156</td>\n",
" <td>0.043374</td>\n",
" <td>0.052240</td>\n",
" <td>0.111622</td>\n",
" <td>0.111128</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20200430</th>\n",
" <td>0.022910</td>\n",
" <td>0.033183</td>\n",
" <td>0.024343</td>\n",
" <td>0.025431</td>\n",
" <td>0.022917</td>\n",
" <td>0.032917</td>\n",
" <td>0.026063</td>\n",
" <td>-0.008364</td>\n",
" <td>0.039694</td>\n",
" <td>0.039760</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20200731</th>\n",
" <td>0.160545</td>\n",
" <td>0.241422</td>\n",
" <td>0.068116</td>\n",
" <td>0.014480</td>\n",
" <td>0.160229</td>\n",
" <td>0.238796</td>\n",
" <td>0.097704</td>\n",
" <td>0.213265</td>\n",
" <td>0.314049</td>\n",
" <td>0.314682</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20201030</th>\n",
" <td>0.013012</td>\n",
" <td>0.008570</td>\n",
" <td>0.014758</td>\n",
" <td>0.016365</td>\n",
" <td>0.012496</td>\n",
" <td>0.008203</td>\n",
" <td>0.014409</td>\n",
" <td>0.002734</td>\n",
" <td>0.005660</td>\n",
" <td>0.005447</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20210129</th>\n",
" <td>0.073486</td>\n",
" <td>0.120860</td>\n",
" <td>0.040645</td>\n",
" <td>-0.000223</td>\n",
" <td>0.074136</td>\n",
" <td>0.119990</td>\n",
" <td>0.055673</td>\n",
" <td>0.183952</td>\n",
" <td>0.162166</td>\n",
" <td>0.161881</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20210430</th>\n",
" <td>-0.002584</td>\n",
" <td>-0.017081</td>\n",
" <td>0.005777</td>\n",
" <td>0.005356</td>\n",
" <td>-0.001412</td>\n",
" <td>-0.019236</td>\n",
" <td>0.002090</td>\n",
" <td>-0.018276</td>\n",
" <td>-0.021246</td>\n",
" <td>-0.020846</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20210730</th>\n",
" <td>0.018601</td>\n",
" <td>0.045521</td>\n",
" <td>0.015155</td>\n",
" <td>0.008026</td>\n",
" <td>-0.035611</td>\n",
" <td>0.076766</td>\n",
" <td>0.018190</td>\n",
" <td>0.048654</td>\n",
" <td>0.020624</td>\n",
" <td>-0.034590</td>\n",
" <td>0.077227</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20211029</th>\n",
" <td>0.013112</td>\n",
" <td>0.008208</td>\n",
" <td>0.012373</td>\n",
" <td>0.013073</td>\n",
" <td>-0.033314</td>\n",
" <td>0.007157</td>\n",
" <td>0.012832</td>\n",
" <td>0.008014</td>\n",
" <td>0.011076</td>\n",
" <td>-0.032714</td>\n",
" <td>0.007651</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20211109</th>\n",
" <td>-0.000473</td>\n",
" <td>0.000078</td>\n",
" <td>0.001179</td>\n",
" <td>0.001256</td>\n",
" <td>-0.023138</td>\n",
" <td>0.000981</td>\n",
" <td>-0.000641</td>\n",
" <td>-0.000387</td>\n",
" <td>0.001632</td>\n",
" <td>-0.022946</td>\n",
" <td>0.000827</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
"混合型(子类) 中权益仓位混合型基金 中高权益仓位混合型基金 低权益仓位混合型基金 其他混合型基金 港股通混合型基金 高权益仓位混合型基金\n",
"level_0 \n",
"20150430 0.258924 0.346401 0.086018 0.276533 NaN 0.433396\n",
"20150731 0.017399 -0.064522 0.017399 -0.004709 NaN -0.123440\n",
"20151030 0.016467 0.007627 0.011661 0.012797 NaN 0.002940\n",
"20160129 -0.110890 -0.133252 -0.003947 -0.059547 -0.109091 -0.165323\n",
"20160429 0.051802 0.070901 0.018104 0.056592 0.049075 0.095294\n",
"20160729 0.031522 0.037971 0.020375 0.011282 0.048199 0.043090\n",
"20161031 0.020561 0.023523 0.011960 0.008223 0.070950 0.027626\n",
"20170126 -0.024257 -0.028126 -0.004836 -0.014183 0.032046 -0.042512\n",
"20170428 0.013941 0.026915 0.012193 0.023067 0.044481 0.029404\n",
"20170731 0.038146 0.037378 0.024416 0.012130 0.078740 0.038528\n",
"20171031 0.046018 0.067619 0.024014 0.029962 0.056801 0.086917\n",
"20180131 0.024187 0.014976 0.023043 0.048250 0.068981 0.004281\n",
"20180427 -0.045118 -0.049719 -0.012853 -0.022178 -0.076809 -0.060823\n",
"20180731 -0.026585 -0.040295 0.005816 0.016653 0.000361 -0.050581\n",
"20181031 -0.081243 -0.112593 -0.018845 -0.000366 -0.109172 -0.144392\n",
"20190131 0.012458 0.010629 0.015280 0.013863 0.030933 0.014424\n",
"20190430 0.113274 0.172182 0.040222 0.030576 0.123257 0.218801\n",
"20190731 0.018430 0.014272 0.023151 0.011591 -0.016889 0.017877\n",
"20191031 0.034795 0.058042 0.018361 0.005970 0.048366 0.073178\n",
"20200123 0.064915 0.088269 0.033939 0.014502 0.052240 0.111622\n",
"20200430 0.022910 0.033183 0.024343 0.025431 -0.008364 0.039694\n",
"20200731 0.160545 0.241422 0.068116 0.014480 0.213265 0.314049\n",
"20201030 0.013012 0.008570 0.014758 0.016365 0.002734 0.005660\n",
"20210129 0.073486 0.120860 0.040645 -0.000223 0.183952 0.162166\n",
"20210430 -0.002584 -0.017081 0.005777 0.005356 -0.018276 -0.021246\n",
"20210730 0.018601 0.045521 0.015155 0.008026 -0.035611 0.076766\n",
"20211029 0.013112 0.008208 0.012373 0.013073 -0.033314 0.007157\n",
"20211109 -0.000473 0.000078 0.001179 0.001256 -0.023138 0.000981"
"混合型(子类) 中权益仓位混合型基金 中高权益仓位混合型基金 低权益仓位混合型基金 港股通混合型基金 高权益仓位混合型基金\n",
"level_0 \n",
"20150430 0.258924 0.348613 0.192687 NaN 0.437973\n",
"20150731 0.021432 -0.062666 -0.012357 NaN -0.126223\n",
"20151030 0.018649 0.008593 0.010092 NaN 0.002864\n",
"20160129 -0.112435 -0.133801 -0.025787 -0.109091 -0.166866\n",
"20160429 0.051843 0.071904 0.028702 0.049075 0.094158\n",
"20160729 0.030047 0.038049 0.023101 0.048199 0.042416\n",
"20161031 0.020888 0.022911 0.013596 0.070950 0.027520\n",
"20170126 -0.025702 -0.028334 -0.007063 0.032046 -0.043404\n",
"20170428 0.015067 0.026604 0.014594 0.044481 0.028439\n",
"20170731 0.041631 0.039265 0.024902 0.078740 0.038031\n",
"20171031 0.047595 0.068377 0.029063 0.056801 0.086614\n",
"20180131 0.028453 0.018477 0.020796 0.068981 0.003799\n",
"20180427 -0.045357 -0.049265 -0.017824 -0.076809 -0.060568\n",
"20180731 -0.025896 -0.039902 0.000766 0.000361 -0.050714\n",
"20181031 -0.081167 -0.112553 -0.030007 -0.109172 -0.144163\n",
"20190131 0.012892 0.010372 0.015457 0.030933 0.014041\n",
"20190430 0.112640 0.171685 0.057924 0.123257 0.218478\n",
"20190731 0.018153 0.014009 0.022219 -0.016889 0.017960\n",
"20191031 0.034175 0.057166 0.024154 0.048366 0.073511\n",
"20200123 0.064651 0.088156 0.043374 0.052240 0.111128\n",
"20200430 0.022917 0.032917 0.026063 -0.008364 0.039760\n",
"20200731 0.160229 0.238796 0.097704 0.213265 0.314682\n",
"20201030 0.012496 0.008203 0.014409 0.002734 0.005447\n",
"20210129 0.074136 0.119990 0.055673 0.183952 0.161881\n",
"20210430 -0.001412 -0.019236 0.002090 -0.018276 -0.020846\n",
"20210730 0.018190 0.048654 0.020624 -0.034590 0.077227\n",
"20211029 0.012832 0.008014 0.011076 -0.032714 0.007651\n",
"20211109 -0.000641 -0.000387 0.001632 -0.022946 0.000827"
]
},
"execution_count": 14,
......
......@@ -2,7 +2,7 @@
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"execution_count": 2,
"id": "938912de-30f4-443b-8c1d-d9168c4a1d06",
"metadata": {},
"outputs": [],
......@@ -26,7 +26,7 @@
},
{
"cell_type": "code",
"execution_count": 2,
"execution_count": 3,
"id": "ce3b53e6-60f3-48e5-9cdd-8a92cc70c6d7",
"metadata": {},
"outputs": [],
......@@ -41,7 +41,28 @@
},
{
"cell_type": "code",
"execution_count": 3,
"execution_count": 17,
"id": "44022ea6-1d1a-4deb-ab8f-36fce80f06ce",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'20220514'"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"current_date"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "07275364-e308-433e-9c3a-fe78ad8e9daa",
"metadata": {},
"outputs": [
......@@ -51,7 +72,7 @@
"4328"
]
},
"execution_count": 3,
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
......@@ -66,7 +87,7 @@
},
{
"cell_type": "code",
"execution_count": 4,
"execution_count": 5,
"id": "5049fc82-e1ee-476a-9fb6-79adedb6028e",
"metadata": {},
"outputs": [],
......@@ -79,19 +100,19 @@
},
{
"cell_type": "code",
"execution_count": 5,
"execution_count": 6,
"id": "0c2416b1-4edb-45d9-a31a-11fb70344539",
"metadata": {},
"outputs": [],
"source": [
"last_portfolio = asset_port.groupby(\"SECURITYID\").last()[[\"BDRTO\"]]\n",
"last_portfolio = asset_port.groupby(\"SECURITYID\").last()[[\"BDRTO\", \"STFINBDRTO\", \"DEPOSITRTO\"]]\n",
"last_4_cov_portfolio = asset_port.groupby(\"SECURITYID\").rolling(window=4).mean().groupby(level=0).last()[[\"CONVBDRTO_TO_BDRTO\"]]\n",
"last_4_stk_portfolio = asset_port.groupby(\"SECURITYID\").rolling(window=4).mean().groupby(level=0).last()[[\"EQUITYINVERTO\"]]"
]
},
{
"cell_type": "code",
"execution_count": 34,
"execution_count": 7,
"id": "7810ff27-b4b0-4b30-a77a-c3e6d531e1ae",
"metadata": {},
"outputs": [],
......@@ -102,26 +123,35 @@
},
{
"cell_type": "code",
"execution_count": 35,
"execution_count": 8,
"id": "eeba83bf-8cb4-4583-9be6-4abbe918ee01",
"metadata": {},
"outputs": [],
"source": [
"df[\"债券型(子类)\"] = pd.NA"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "894e01ee-8f44-472f-b37a-1d23fc8c57c1",
"metadata": {},
"outputs": [],
"source": [
"# 分类\n",
"df.loc[df.CLASSCODE == \"220301\", \"债券型(子类)\"] = \"短期纯债型基金\"\n",
"df.loc[df.CLASSCODE == \"220303\", \"债券型(子类)\"] = \"中长期纯债型基金\"\n",
"df.loc[df.CLASSCODE == \"220305\", \"债券型(子类)\"] = \"增强指数型债券基金\"\n",
"df.loc[(df[\"BDRTO\"] >= 80) & (df[\"CONVBDRTO_TO_BDRTO\"] >= 80), \"债券型(子类)\"] = \"可转债基金\"\n",
"df.loc[(df[\"BDRTO\"] >= 80) & (df[\"CONVBDRTO_TO_BDRTO\"] >= 5) & (df[\"CONVBDRTO_TO_BDRTO\"] < 80) & (df[\"EQUITYINVERTO\"] <= 0.1), \"债券型(子类)\"] = \"可投转债型债券基金\"\n",
"df.loc[(df[\"BDRTO\"] >= 80) & (df[\"EQUITYINVERTO\"] >= 0.1) & (~df[\"债券型(子类)\"].isin([\"可投转债型债券基金\", \"可转债基金\"])), \"债券型(子类)\"] = \"可投股票型债券基金\"\n",
"df.loc[(df[\"BDRTO\"] >= 80) & (df.CLASSCODE == \"220302\") & (~df[\"债券型(子类)\"].isin([\"可投转债型债券基金\", \"可转债基金\"])), \"债券型(子类)\"] = \"被动指数型债券基金\"\n",
"df.loc[pd.isnull(df[\"债券型(子类)\"]), \"债券型(子类)\"] = \"其他债券型基金\"\n",
"df.loc[(df.CLASSCODE == \"220302\") & (pd.isnull(df[\"债券型(子类)\"])) & (pd.isnull(df[\"债券型(子类)\"])), \"债券型(子类)\"] = \"被动指数型债券基金\"\n",
"df.loc[(df.CLASSCODE == \"220305\") & (pd.isnull(df[\"债券型(子类)\"])) & (pd.isnull(df[\"债券型(子类)\"])), \"债券型(子类)\"] = \"增强指数型债券基金\"\n",
"df.loc[(df[\"BDRTO\"] >= 80) & (df[\"STFINBDRTO\"] / (100 - df[\"DEPOSITRTO\"]) >= 0.8) & (pd.isnull(df[\"债券型(子类)\"])), \"债券型(子类)\"] = \"短期纯债型基金\"\n",
"df.loc[(df[\"BDRTO\"] >= 80) & (df[\"CONVBDRTO_TO_BDRTO\"] >= 80) & (pd.isnull(df[\"债券型(子类)\"])), \"债券型(子类)\"] = \"可转债基金\"\n",
"df.loc[(df[\"BDRTO\"] >= 80) & (df[\"CONVBDRTO_TO_BDRTO\"] >= 5) & (df[\"CONVBDRTO_TO_BDRTO\"] < 80) & ((df[\"EQUITYINVERTO\"] == 0) | pd.isnull(df[\"EQUITYINVERTO\"])) & (pd.isnull(df[\"债券型(子类)\"])), \"债券型(子类)\"] = \"可投转债型债券基金\"\n",
"df.loc[(df[\"BDRTO\"] >= 80) & (df[\"EQUITYINVERTO\"] >= 0.1) & (pd.isnull(df[\"债券型(子类)\"])), \"债券型(子类)\"] = \"可投股票型债券基金\"\n",
"df.loc[pd.isnull(df[\"债券型(子类)\"]), \"债券型(子类)\"] = \"中长期纯债型基\"\n",
"df = df.sort_values(\"SECURITYID\").dropna(subset=[\"债券型(子类)\"])"
]
},
{
"cell_type": "code",
"execution_count": 36,
"execution_count": 12,
"id": "0fddaf03-8e90-474d-9584-7a5b60c3a15d",
"metadata": {},
"outputs": [
......@@ -151,6 +181,8 @@
" <th>ENDDATE</th>\n",
" <th>CLASSCODE</th>\n",
" <th>BDRTO</th>\n",
" <th>STFINBDRTO</th>\n",
" <th>DEPOSITRTO</th>\n",
" <th>CONVBDRTO_TO_BDRTO</th>\n",
" <th>EQUITYINVERTO</th>\n",
" </tr>\n",
......@@ -163,94 +195,108 @@
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>中长期纯债型基金</th>\n",
" <td>2438</td>\n",
" <td>2438</td>\n",
" <td>2438</td>\n",
" <td>2438</td>\n",
" <td>2425</td>\n",
" <td>1891</td>\n",
" <td>2162</td>\n",
" </tr>\n",
" <tr>\n",
" <th>其他债券型基金</th>\n",
" <td>600</td>\n",
" <td>600</td>\n",
" <td>600</td>\n",
" <td>600</td>\n",
" <td>573</td>\n",
" <td>316</td>\n",
" <td>420</td>\n",
" <th>中长期纯债型基</th>\n",
" <td>3544</td>\n",
" <td>3544</td>\n",
" <td>3544</td>\n",
" <td>3544</td>\n",
" <td>3442</td>\n",
" <td>3442</td>\n",
" <td>3442</td>\n",
" <td>2496</td>\n",
" <td>3285</td>\n",
" </tr>\n",
" <tr>\n",
" <th>可投股票型债券基金</th>\n",
" <td>540</td>\n",
" <td>540</td>\n",
" <td>540</td>\n",
" <td>540</td>\n",
" <td>540</td>\n",
" <td>477</td>\n",
" <td>540</td>\n",
" <td>529</td>\n",
" <td>529</td>\n",
" <td>529</td>\n",
" <td>529</td>\n",
" <td>529</td>\n",
" <td>529</td>\n",
" <td>529</td>\n",
" <td>462</td>\n",
" <td>529</td>\n",
" </tr>\n",
" <tr>\n",
" <th>可投转债型债券基金</th>\n",
" <td>159</td>\n",
" <td>159</td>\n",
" <td>159</td>\n",
" <td>159</td>\n",
" <td>159</td>\n",
" <td>159</td>\n",
" <td>159</td>\n",
" <td>134</td>\n",
" <td>134</td>\n",
" <td>134</td>\n",
" <td>134</td>\n",
" <td>134</td>\n",
" <td>134</td>\n",
" <td>134</td>\n",
" <td>134</td>\n",
" <td>134</td>\n",
" </tr>\n",
" <tr>\n",
" <th>可转债基金</th>\n",
" <td>66</td>\n",
" <td>66</td>\n",
" <td>66</td>\n",
" <td>66</td>\n",
" <td>66</td>\n",
" <td>66</td>\n",
" <td>66</td>\n",
" <td>76</td>\n",
" <td>76</td>\n",
" <td>76</td>\n",
" <td>76</td>\n",
" <td>76</td>\n",
" <td>76</td>\n",
" <td>76</td>\n",
" <td>76</td>\n",
" <td>76</td>\n",
" </tr>\n",
" <tr>\n",
" <th>增强指数型债券基金</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>短期纯债型基金</th>\n",
" <td>525</td>\n",
" <td>525</td>\n",
" <td>525</td>\n",
" <td>525</td>\n",
" <td>519</td>\n",
" <td>327</td>\n",
" <td>401</td>\n",
" <td>44</td>\n",
" <td>44</td>\n",
" <td>44</td>\n",
" <td>44</td>\n",
" <td>44</td>\n",
" <td>44</td>\n",
" <td>44</td>\n",
" <td>31</td>\n",
" <td>41</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" SECURITYID BEGINDATE ENDDATE CLASSCODE BDRTO \\\n",
"债券型(子类) \n",
"中长期纯债型基金 2438 2438 2438 2438 2425 \n",
"其他债券型基金 600 600 600 600 573 \n",
"可投股票型债券基金 540 540 540 540 540 \n",
"可投转债型债券基金 159 159 159 159 159 \n",
"可转债基金 66 66 66 66 66 \n",
"短期纯债型基金 525 525 525 525 519 \n",
" SECURITYID BEGINDATE ENDDATE CLASSCODE BDRTO STFINBDRTO \\\n",
"债券型(子类) \n",
"中长期纯债型基 3544 3544 3544 3544 3442 3442 \n",
"可投股票型债券基金 529 529 529 529 529 529 \n",
"可投转债型债券基金 134 134 134 134 134 134 \n",
"可转债基金 76 76 76 76 76 76 \n",
"增强指数型债券基金 1 1 1 1 1 1 \n",
"短期纯债型基金 44 44 44 44 44 44 \n",
"\n",
" CONVBDRTO_TO_BDRTO EQUITYINVERTO \n",
"债券型(子类) \n",
"中长期纯债型基金 1891 2162 \n",
"其他债券型基金 316 420 \n",
"可投股票型债券基金 477 540 \n",
"可投转债型债券基金 159 159 \n",
"可转债基金 66 66 \n",
"短期纯债型基金 327 401 "
" DEPOSITRTO CONVBDRTO_TO_BDRTO EQUITYINVERTO \n",
"债券型(子类) \n",
"中长期纯债型基 3442 2496 3285 \n",
"可投股票型债券基金 529 462 529 \n",
"可投转债型债券基金 134 134 134 \n",
"可转债基金 76 76 76 \n",
"增强指数型债券基金 1 1 1 \n",
"短期纯债型基金 44 31 41 "
]
},
"execution_count": 36,
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
......@@ -269,7 +315,7 @@
},
{
"cell_type": "code",
"execution_count": 37,
"execution_count": 15,
"id": "1985799f-9a72-4f53-a09b-e15c738f211f",
"metadata": {},
"outputs": [],
......@@ -285,27 +331,30 @@
" \n",
" asset_port = fd_assetportfolio(security_ids, report_dates_begin, current_date).fillna(0)\n",
" asset_port[\"CONVBDRTO_TO_BDRTO\"] = asset_port[\"CONVBDRTO\"] / asset_port[\"BDRTO\"] * 100\n",
" last_portfolio = asset_port.groupby(\"SECURITYID\").last()[[\"BDRTO\"]]\n",
" last_portfolio = asset_port.groupby(\"SECURITYID\").last()[[\"BDRTO\", \"STFINBDRTO\", \"DEPOSITRTO\"]]\n",
" last_4_cov_portfolio = asset_port.groupby(\"SECURITYID\").rolling(window=4).mean().groupby(level=0).last()[[\"CONVBDRTO_TO_BDRTO\"]]\n",
" last_4_stk_portfolio = asset_port.groupby(\"SECURITYID\").rolling(window=4).mean().groupby(level=0).last()[[\"EQUITYINVERTO\"]]\n",
" \n",
" df = pd.concat([last_portfolio, last_4_cov_portfolio, last_4_stk_portfolio], axis=1).reset_index()\n",
" df = pd.merge(security_info, df, on=[\"SECURITYID\"], how=\"left\")\n",
" \n",
" df.loc[(df[\"BDRTO\"] >= 80) & (df.CLASSCODE.str.startswith(\"220304\")), \"债券型(子类)\"] = \"短期纯债型基金\"\n",
" df.loc[(df[\"BDRTO\"] >= 80) & (df[\"CONVBDRTO_TO_BDRTO\"] >= 80), \"债券型(子类)\"] = \"可转债基金\"\n",
" df.loc[(df[\"BDRTO\"] >= 80) & (df[\"CONVBDRTO_TO_BDRTO\"] >= 5) & (df[\"CONVBDRTO_TO_BDRTO\"] < 80) & (df[\"EQUITYINVERTO\"] <= 0.1), \"债券型(子类)\"] = \"可投转债型债券基金\"\n",
" df.loc[(df[\"BDRTO\"] >= 80) & (df[\"EQUITYINVERTO\"] >= 0.1) & (~df[\"债券型(子类)\"].isin([\"可投转债型债券基金\", \"可转债基金\"])), \"债券型(子类)\"] = \"可投股票型债券基金\"\n",
" df.loc[(df[\"BDRTO\"] >= 80) & (df.CLASSCODE.str.startswith(\"220307\")) & (~df[\"债券型(子类)\"].isin([\"可投转债型债券基金\", \"可转债基金\"])), \"债券型(子类)\"] = \"被动指数型债券基金\"\n",
" df.loc[(df[\"BDRTO\"] >= 80) & (df[\"EQUITYINVERTO\"] < 0.05) & (pd.isnull(df[\"债券型(子类)\"])), \"债券型(子类)\"] = \"中长期纯债型基金\"\n",
" df.loc[pd.isnull(df[\"债券型(子类)\"]), \"债券型(子类)\"] = \"其他债券型基金\"\n",
" # 分类\n",
" df[\"债券型(子类)\"] = pd.NA\n",
" df.loc[(df.CLASSCODE == \"220302\") & (pd.isnull(df[\"债券型(子类)\"])) & (pd.isnull(df[\"债券型(子类)\"])), \"债券型(子类)\"] = \"被动指数型债券基金\"\n",
" df.loc[(df.CLASSCODE == \"220305\") & (pd.isnull(df[\"债券型(子类)\"])) & (pd.isnull(df[\"债券型(子类)\"])), \"债券型(子类)\"] = \"增强指数型债券基金\"\n",
" df.loc[(df[\"BDRTO\"] >= 80) & (df[\"STFINBDRTO\"] / (100 - df[\"DEPOSITRTO\"]) >= 0.8) & (pd.isnull(df[\"债券型(子类)\"])), \"债券型(子类)\"] = \"短期纯债型基金\"\n",
" df.loc[(df[\"BDRTO\"] >= 80) & (df[\"CONVBDRTO_TO_BDRTO\"] >= 80) & (pd.isnull(df[\"债券型(子类)\"])), \"债券型(子类)\"] = \"可转债基金\"\n",
" df.loc[(df[\"BDRTO\"] >= 80) & (df[\"CONVBDRTO_TO_BDRTO\"] >= 5) & (df[\"CONVBDRTO_TO_BDRTO\"] < 80) & ((df[\"EQUITYINVERTO\"] == 0) | pd.isnull(df[\"EQUITYINVERTO\"])) & (pd.isnull(df[\"债券型(子类)\"])), \"债券型(子类)\"] = \"可投转债型债券基金\"\n",
" df.loc[(df[\"BDRTO\"] >= 80) & (df[\"EQUITYINVERTO\"] >= 0.1) & (pd.isnull(df[\"债券型(子类)\"])), \"债券型(子类)\"] = \"可投股票型债券基金\"\n",
" df.loc[pd.isnull(df[\"债券型(子类)\"]), \"债券型(子类)\"] = \"中长期纯债型基\"\n",
" df = df.sort_values(\"SECURITYID\").dropna(subset=[\"债券型(子类)\"])\n",
" \n",
" return df.sort_values(\"SECURITYID\").dropna(subset=[\"债券型(子类)\"])"
]
},
{
"cell_type": "code",
"execution_count": 38,
"execution_count": 18,
"id": "514f4c0b-bd1e-430b-9c5a-721bec381dc0",
"metadata": {},
"outputs": [
......@@ -313,7 +362,7 @@
"name": "stdout",
"output_type": "stream",
"text": [
"Wall time: 5.62 s\n"
"Wall time: 8.24 s\n"
]
},
{
......@@ -342,6 +391,8 @@
" <th>ENDDATE</th>\n",
" <th>CLASSCODE</th>\n",
" <th>BDRTO</th>\n",
" <th>STFINBDRTO</th>\n",
" <th>DEPOSITRTO</th>\n",
" <th>CONVBDRTO_TO_BDRTO</th>\n",
" <th>EQUITYINVERTO</th>\n",
" </tr>\n",
......@@ -354,94 +405,108 @@
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>中长期纯债型基金</th>\n",
" <td>2278</td>\n",
" <td>2278</td>\n",
" <td>2278</td>\n",
" <td>2278</td>\n",
" <td>2278</td>\n",
" <td>2156</td>\n",
" <td>2278</td>\n",
" </tr>\n",
" <tr>\n",
" <th>其他债券型基金</th>\n",
" <td>1008</td>\n",
" <td>1008</td>\n",
" <td>1008</td>\n",
" <td>1008</td>\n",
" <td>868</td>\n",
" <td>258</td>\n",
" <td>300</td>\n",
" <th>中长期纯债型基</th>\n",
" <td>3544</td>\n",
" <td>3544</td>\n",
" <td>3544</td>\n",
" <td>3544</td>\n",
" <td>3442</td>\n",
" <td>3442</td>\n",
" <td>3442</td>\n",
" <td>2496</td>\n",
" <td>3285</td>\n",
" </tr>\n",
" <tr>\n",
" <th>可投股票型债券基金</th>\n",
" <td>568</td>\n",
" <td>568</td>\n",
" <td>568</td>\n",
" <td>568</td>\n",
" <td>568</td>\n",
" <td>544</td>\n",
" <td>568</td>\n",
" <td>529</td>\n",
" <td>529</td>\n",
" <td>529</td>\n",
" <td>529</td>\n",
" <td>529</td>\n",
" <td>529</td>\n",
" <td>529</td>\n",
" <td>462</td>\n",
" <td>529</td>\n",
" </tr>\n",
" <tr>\n",
" <th>可投转债型债券基金</th>\n",
" <td>178</td>\n",
" <td>178</td>\n",
" <td>178</td>\n",
" <td>178</td>\n",
" <td>178</td>\n",
" <td>178</td>\n",
" <td>178</td>\n",
" <td>134</td>\n",
" <td>134</td>\n",
" <td>134</td>\n",
" <td>134</td>\n",
" <td>134</td>\n",
" <td>134</td>\n",
" <td>134</td>\n",
" <td>134</td>\n",
" <td>134</td>\n",
" </tr>\n",
" <tr>\n",
" <th>可转债基金</th>\n",
" <td>72</td>\n",
" <td>72</td>\n",
" <td>72</td>\n",
" <td>72</td>\n",
" <td>72</td>\n",
" <td>72</td>\n",
" <td>72</td>\n",
" <td>76</td>\n",
" <td>76</td>\n",
" <td>76</td>\n",
" <td>76</td>\n",
" <td>76</td>\n",
" <td>76</td>\n",
" <td>76</td>\n",
" <td>76</td>\n",
" <td>76</td>\n",
" </tr>\n",
" <tr>\n",
" <th>增强指数型债券基金</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>短期纯债型基金</th>\n",
" <td>224</td>\n",
" <td>224</td>\n",
" <td>224</td>\n",
" <td>224</td>\n",
" <td>224</td>\n",
" <td>169</td>\n",
" <td>186</td>\n",
" <td>44</td>\n",
" <td>44</td>\n",
" <td>44</td>\n",
" <td>44</td>\n",
" <td>44</td>\n",
" <td>44</td>\n",
" <td>44</td>\n",
" <td>31</td>\n",
" <td>41</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" SECURITYID BEGINDATE ENDDATE CLASSCODE BDRTO \\\n",
"债券型(子类) \n",
"中长期纯债型基金 2278 2278 2278 2278 2278 \n",
"其他债券型基金 1008 1008 1008 1008 868 \n",
"可投股票型债券基金 568 568 568 568 568 \n",
"可投转债型债券基金 178 178 178 178 178 \n",
"可转债基金 72 72 72 72 72 \n",
"短期纯债型基金 224 224 224 224 224 \n",
" SECURITYID BEGINDATE ENDDATE CLASSCODE BDRTO STFINBDRTO \\\n",
"债券型(子类) \n",
"中长期纯债型基 3544 3544 3544 3544 3442 3442 \n",
"可投股票型债券基金 529 529 529 529 529 529 \n",
"可投转债型债券基金 134 134 134 134 134 134 \n",
"可转债基金 76 76 76 76 76 76 \n",
"增强指数型债券基金 1 1 1 1 1 1 \n",
"短期纯债型基金 44 44 44 44 44 44 \n",
"\n",
" CONVBDRTO_TO_BDRTO EQUITYINVERTO \n",
"债券型(子类) \n",
"中长期纯债型基金 2156 2278 \n",
"其他债券型基金 258 300 \n",
"可投股票型债券基金 544 568 \n",
"可投转债型债券基金 178 178 \n",
"可转债基金 72 72 \n",
"短期纯债型基金 169 186 "
" DEPOSITRTO CONVBDRTO_TO_BDRTO EQUITYINVERTO \n",
"债券型(子类) \n",
"中长期纯债型基 3442 2496 3285 \n",
"可投股票型债券基金 529 462 529 \n",
"可投转债型债券基金 134 134 134 \n",
"可转债基金 76 76 76 \n",
"增强指数型债券基金 1 1 1 \n",
"短期纯债型基金 44 31 41 "
]
},
"execution_count": 38,
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
......@@ -449,7 +514,7 @@
"source": [
"%%time\n",
"\n",
"create_bond_fund_info(\"20220212\").groupby( \"债券型(子类)\").count()"
"create_bond_fund_info(current_date).groupby( \"债券型(子类)\").count()"
]
},
{
......@@ -463,7 +528,7 @@
},
{
"cell_type": "code",
"execution_count": 39,
"execution_count": 19,
"id": "bc46497a-3044-4455-b427-5e461acffc71",
"metadata": {},
"outputs": [],
......@@ -481,7 +546,7 @@
},
{
"cell_type": "code",
"execution_count": 40,
"execution_count": 20,
"id": "4555a339-5ad5-4158-81a0-4011ab35d755",
"metadata": {},
"outputs": [
......@@ -539,7 +604,7 @@
},
{
"cell_type": "code",
"execution_count": 41,
"execution_count": 21,
"id": "f1f60b62-c7c8-4295-9b3c-4fbbc7bc26bd",
"metadata": {},
"outputs": [],
......@@ -550,7 +615,7 @@
},
{
"cell_type": "code",
"execution_count": 42,
"execution_count": 22,
"id": "0c53a5ad-430e-459a-b8cf-13ab69b5e3f4",
"metadata": {},
"outputs": [
......@@ -575,11 +640,11 @@
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th>债券型(子类)</th>\n",
" <th>中长期纯债型基金</th>\n",
" <th>其他债券型基金</th>\n",
" <th>中长期纯债型基</th>\n",
" <th>可投股票型债券基金</th>\n",
" <th>可投转债型债券基金</th>\n",
" <th>可转债基金</th>\n",
" <th>增强指数型债券基金</th>\n",
" <th>短期纯债型基金</th>\n",
" </tr>\n",
" <tr>\n",
......@@ -595,294 +660,294 @@
" <tbody>\n",
" <tr>\n",
" <th>20150430</th>\n",
" <td>0.027487</td>\n",
" <td>0.040852</td>\n",
" <td>0.075875</td>\n",
" <td>0.042358</td>\n",
" <td>0.187579</td>\n",
" <td>0.014263</td>\n",
" <td>0.036105</td>\n",
" <td>0.082163</td>\n",
" <td>0.038693</td>\n",
" <td>0.187308</td>\n",
" <td>0.059499</td>\n",
" <td>0.022672</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20150731</th>\n",
" <td>0.029353</td>\n",
" <td>0.011027</td>\n",
" <td>0.005218</td>\n",
" <td>0.016757</td>\n",
" <td>-0.180019</td>\n",
" <td>0.021172</td>\n",
" <td>0.023383</td>\n",
" <td>-0.001256</td>\n",
" <td>0.017216</td>\n",
" <td>-0.153189</td>\n",
" <td>-0.038023</td>\n",
" <td>0.021298</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20151030</th>\n",
" <td>0.024943</td>\n",
" <td>0.019711</td>\n",
" <td>0.020645</td>\n",
" <td>0.022843</td>\n",
" <td>-0.001686</td>\n",
" <td>0.025299</td>\n",
" <td>0.023308</td>\n",
" <td>0.020890</td>\n",
" <td>0.021445</td>\n",
" <td>0.002177</td>\n",
" <td>0.009210</td>\n",
" <td>0.023522</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20160129</th>\n",
" <td>0.013491</td>\n",
" <td>0.003507</td>\n",
" <td>-0.009161</td>\n",
" <td>0.012525</td>\n",
" <td>-0.123195</td>\n",
" <td>0.018353</td>\n",
" <td>0.008959</td>\n",
" <td>-0.011733</td>\n",
" <td>0.008502</td>\n",
" <td>-0.110337</td>\n",
" <td>0.001346</td>\n",
" <td>0.011113</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20160429</th>\n",
" <td>0.001368</td>\n",
" <td>0.001569</td>\n",
" <td>0.007608</td>\n",
" <td>-0.000353</td>\n",
" <td>-0.010025</td>\n",
" <td>0.002924</td>\n",
" <td>0.002100</td>\n",
" <td>0.008564</td>\n",
" <td>NaN</td>\n",
" <td>-0.007621</td>\n",
" <td>0.006491</td>\n",
" <td>0.002734</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20160729</th>\n",
" <td>0.023432</td>\n",
" <td>0.019429</td>\n",
" <td>0.021861</td>\n",
" <td>0.020711</td>\n",
" <td>-0.008025</td>\n",
" <td>0.018377</td>\n",
" <td>0.021830</td>\n",
" <td>0.022154</td>\n",
" <td>0.023963</td>\n",
" <td>-0.001476</td>\n",
" <td>0.012573</td>\n",
" <td>0.014217</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20161031</th>\n",
" <td>0.012861</td>\n",
" <td>0.014338</td>\n",
" <td>0.015342</td>\n",
" <td>0.014491</td>\n",
" <td>0.035734</td>\n",
" <td>0.012366</td>\n",
" <td>0.013889</td>\n",
" <td>0.014182</td>\n",
" <td>0.012739</td>\n",
" <td>0.038147</td>\n",
" <td>0.007946</td>\n",
" <td>0.009114</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20170126</th>\n",
" <td>-0.016172</td>\n",
" <td>-0.005523</td>\n",
" <td>-0.019407</td>\n",
" <td>-0.019866</td>\n",
" <td>-0.055129</td>\n",
" <td>-0.018539</td>\n",
" <td>-0.011543</td>\n",
" <td>-0.018677</td>\n",
" <td>-0.022530</td>\n",
" <td>-0.054809</td>\n",
" <td>-0.009192</td>\n",
" <td>-0.005379</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20170428</th>\n",
" <td>-0.001555</td>\n",
" <td>0.002298</td>\n",
" <td>-0.001565</td>\n",
" <td>-0.005702</td>\n",
" <td>-0.018783</td>\n",
" <td>-0.006002</td>\n",
" <td>0.000134</td>\n",
" <td>-0.001237</td>\n",
" <td>-0.003287</td>\n",
" <td>-0.021660</td>\n",
" <td>0.006958</td>\n",
" <td>0.002661</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20170731</th>\n",
" <td>0.012640</td>\n",
" <td>0.017847</td>\n",
" <td>0.021039</td>\n",
" <td>0.016920</td>\n",
" <td>0.064723</td>\n",
" <td>0.004952</td>\n",
" <td>0.015322</td>\n",
" <td>0.022156</td>\n",
" <td>0.022763</td>\n",
" <td>0.055481</td>\n",
" <td>0.012028</td>\n",
" <td>0.013772</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20171031</th>\n",
" <td>0.004042</td>\n",
" <td>0.005190</td>\n",
" <td>0.007347</td>\n",
" <td>0.001708</td>\n",
" <td>-0.009598</td>\n",
" <td>-0.004573</td>\n",
" <td>0.004665</td>\n",
" <td>0.006195</td>\n",
" <td>0.003719</td>\n",
" <td>-0.018706</td>\n",
" <td>0.009830</td>\n",
" <td>0.005774</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20180131</th>\n",
" <td>0.004399</td>\n",
" <td>0.010482</td>\n",
" <td>0.003654</td>\n",
" <td>0.003590</td>\n",
" <td>-0.001216</td>\n",
" <td>-0.000639</td>\n",
" <td>0.005751</td>\n",
" <td>0.003891</td>\n",
" <td>0.002086</td>\n",
" <td>0.004519</td>\n",
" <td>0.001127</td>\n",
" <td>0.006211</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20180427</th>\n",
" <td>0.018976</td>\n",
" <td>0.021642</td>\n",
" <td>-0.003529</td>\n",
" <td>0.010073</td>\n",
" <td>-0.049803</td>\n",
" <td>0.031128</td>\n",
" <td>0.014538</td>\n",
" <td>-0.006644</td>\n",
" <td>0.010151</td>\n",
" <td>-0.048981</td>\n",
" <td>-0.013632</td>\n",
" <td>0.178702</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20180731</th>\n",
" <td>0.018572</td>\n",
" <td>0.014838</td>\n",
" <td>0.001956</td>\n",
" <td>0.006307</td>\n",
" <td>-0.033074</td>\n",
" <td>0.019988</td>\n",
" <td>0.016953</td>\n",
" <td>0.000240</td>\n",
" <td>-0.004194</td>\n",
" <td>-0.027024</td>\n",
" <td>-0.000349</td>\n",
" <td>0.015208</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20181031</th>\n",
" <td>0.011409</td>\n",
" <td>0.002413</td>\n",
" <td>-0.011417</td>\n",
" <td>0.003151</td>\n",
" <td>-0.042814</td>\n",
" <td>0.010225</td>\n",
" <td>0.007957</td>\n",
" <td>-0.011400</td>\n",
" <td>0.003991</td>\n",
" <td>-0.041538</td>\n",
" <td>-0.009957</td>\n",
" <td>0.007363</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20190131</th>\n",
" <td>0.020101</td>\n",
" <td>0.023684</td>\n",
" <td>0.021866</td>\n",
" <td>0.025635</td>\n",
" <td>0.027278</td>\n",
" <td>0.025509</td>\n",
" <td>0.020873</td>\n",
" <td>0.024284</td>\n",
" <td>0.023449</td>\n",
" <td>0.024033</td>\n",
" <td>0.011306</td>\n",
" <td>0.016589</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20190430</th>\n",
" <td>0.002688</td>\n",
" <td>0.015551</td>\n",
" <td>0.029269</td>\n",
" <td>0.013225</td>\n",
" <td>0.092860</td>\n",
" <td>-0.003606</td>\n",
" <td>0.008140</td>\n",
" <td>0.027582</td>\n",
" <td>0.011102</td>\n",
" <td>0.093042</td>\n",
" <td>0.028946</td>\n",
" <td>0.004177</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20190731</th>\n",
" <td>0.014946</td>\n",
" <td>0.013266</td>\n",
" <td>0.011811</td>\n",
" <td>0.013238</td>\n",
" <td>0.016024</td>\n",
" <td>0.014716</td>\n",
" <td>0.014330</td>\n",
" <td>0.011961</td>\n",
" <td>0.014872</td>\n",
" <td>0.010356</td>\n",
" <td>0.016867</td>\n",
" <td>0.014114</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20191031</th>\n",
" <td>0.008165</td>\n",
" <td>0.007174</td>\n",
" <td>0.011084</td>\n",
" <td>0.008240</td>\n",
" <td>0.025913</td>\n",
" <td>0.003538</td>\n",
" <td>0.007686</td>\n",
" <td>0.010896</td>\n",
" <td>0.008712</td>\n",
" <td>0.026741</td>\n",
" <td>0.020552</td>\n",
" <td>0.007165</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20200123</th>\n",
" <td>0.016681</td>\n",
" <td>0.020613</td>\n",
" <td>0.035275</td>\n",
" <td>0.027079</td>\n",
" <td>0.086641</td>\n",
" <td>0.016345</td>\n",
" <td>0.018250</td>\n",
" <td>0.034985</td>\n",
" <td>0.025543</td>\n",
" <td>0.082998</td>\n",
" <td>0.047721</td>\n",
" <td>0.011962</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20200430</th>\n",
" <td>0.028076</td>\n",
" <td>0.023247</td>\n",
" <td>0.020258</td>\n",
" <td>0.025186</td>\n",
" <td>0.012021</td>\n",
" <td>0.033293</td>\n",
" <td>0.026888</td>\n",
" <td>0.019680</td>\n",
" <td>0.024675</td>\n",
" <td>0.012586</td>\n",
" <td>0.038782</td>\n",
" <td>0.023184</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20200731</th>\n",
" <td>-0.013815</td>\n",
" <td>-0.004379</td>\n",
" <td>0.036980</td>\n",
" <td>-0.001185</td>\n",
" <td>0.125339</td>\n",
" <td>-0.022548</td>\n",
" <td>-0.010954</td>\n",
" <td>0.038132</td>\n",
" <td>0.002004</td>\n",
" <td>0.121129</td>\n",
" <td>0.048043</td>\n",
" <td>-0.000336</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20201030</th>\n",
" <td>0.005340</td>\n",
" <td>0.004633</td>\n",
" <td>-0.001612</td>\n",
" <td>0.004762</td>\n",
" <td>-0.015387</td>\n",
" <td>0.007292</td>\n",
" <td>0.005078</td>\n",
" <td>-0.001265</td>\n",
" <td>0.004291</td>\n",
" <td>-0.013845</td>\n",
" <td>-0.004056</td>\n",
" <td>0.006425</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20210129</th>\n",
" <td>0.005412</td>\n",
" <td>0.007887</td>\n",
" <td>0.023953</td>\n",
" <td>-0.001215</td>\n",
" <td>0.039483</td>\n",
" <td>0.008661</td>\n",
" <td>0.006091</td>\n",
" <td>0.025515</td>\n",
" <td>0.006651</td>\n",
" <td>0.035268</td>\n",
" <td>0.031199</td>\n",
" <td>0.006748</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20210430</th>\n",
" <td>0.010775</td>\n",
" <td>0.015275</td>\n",
" <td>0.003916</td>\n",
" <td>0.012695</td>\n",
" <td>-0.002921</td>\n",
" <td>0.011124</td>\n",
" <td>0.011791</td>\n",
" <td>0.003391</td>\n",
" <td>0.018148</td>\n",
" <td>-0.005664</td>\n",
" <td>-0.005393</td>\n",
" <td>0.008327</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20210730</th>\n",
" <td>0.014064</td>\n",
" <td>0.014196</td>\n",
" <td>0.029335</td>\n",
" <td>0.023927</td>\n",
" <td>0.098648</td>\n",
" <td>0.015168</td>\n",
" <td>0.014824</td>\n",
" <td>0.026406</td>\n",
" <td>0.024361</td>\n",
" <td>0.101547</td>\n",
" <td>0.068729</td>\n",
" <td>0.009902</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20211029</th>\n",
" <td>0.006671</td>\n",
" <td>0.007685</td>\n",
" <td>0.012891</td>\n",
" <td>0.014094</td>\n",
" <td>0.040074</td>\n",
" <td>0.003544</td>\n",
" <td>0.007155</td>\n",
" <td>0.011294</td>\n",
" <td>0.015221</td>\n",
" <td>0.041408</td>\n",
" <td>-0.000834</td>\n",
" <td>0.007129</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20211109</th>\n",
" <td>0.001900</td>\n",
" <td>0.002035</td>\n",
" <td>0.004808</td>\n",
" <td>0.005787</td>\n",
" <td>0.016465</td>\n",
" <td>0.002602</td>\n",
" <td>0.002159</td>\n",
" <td>0.004652</td>\n",
" <td>0.006286</td>\n",
" <td>0.016449</td>\n",
" <td>0.004958</td>\n",
" <td>0.001475</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
"债券型(子类) 中长期纯债型基金 其他债券型基金 可投股票型债券基金 可投转债型债券基金 可转债基金 短期纯债型基金\n",
"level_0 \n",
"20150430 0.027487 0.040852 0.075875 0.042358 0.187579 0.014263\n",
"20150731 0.029353 0.011027 0.005218 0.016757 -0.180019 0.021172\n",
"20151030 0.024943 0.019711 0.020645 0.022843 -0.001686 0.025299\n",
"20160129 0.013491 0.003507 -0.009161 0.012525 -0.123195 0.018353\n",
"20160429 0.001368 0.001569 0.007608 -0.000353 -0.010025 0.002924\n",
"20160729 0.023432 0.019429 0.021861 0.020711 -0.008025 0.018377\n",
"20161031 0.012861 0.014338 0.015342 0.014491 0.035734 0.012366\n",
"20170126 -0.016172 -0.005523 -0.019407 -0.019866 -0.055129 -0.018539\n",
"20170428 -0.001555 0.002298 -0.001565 -0.005702 -0.018783 -0.006002\n",
"20170731 0.012640 0.017847 0.021039 0.016920 0.064723 0.004952\n",
"20171031 0.004042 0.005190 0.007347 0.001708 -0.009598 -0.004573\n",
"20180131 0.004399 0.010482 0.003654 0.003590 -0.001216 -0.000639\n",
"20180427 0.018976 0.021642 -0.003529 0.010073 -0.049803 0.031128\n",
"20180731 0.018572 0.014838 0.001956 0.006307 -0.033074 0.019988\n",
"20181031 0.011409 0.002413 -0.011417 0.003151 -0.042814 0.010225\n",
"20190131 0.020101 0.023684 0.021866 0.025635 0.027278 0.025509\n",
"20190430 0.002688 0.015551 0.029269 0.013225 0.092860 -0.003606\n",
"20190731 0.014946 0.013266 0.011811 0.013238 0.016024 0.014716\n",
"20191031 0.008165 0.007174 0.011084 0.008240 0.025913 0.003538\n",
"20200123 0.016681 0.020613 0.035275 0.027079 0.086641 0.016345\n",
"20200430 0.028076 0.023247 0.020258 0.025186 0.012021 0.033293\n",
"20200731 -0.013815 -0.004379 0.036980 -0.001185 0.125339 -0.022548\n",
"20201030 0.005340 0.004633 -0.001612 0.004762 -0.015387 0.007292\n",
"20210129 0.005412 0.007887 0.023953 -0.001215 0.039483 0.008661\n",
"20210430 0.010775 0.015275 0.003916 0.012695 -0.002921 0.011124\n",
"20210730 0.014064 0.014196 0.029335 0.023927 0.098648 0.015168\n",
"20211029 0.006671 0.007685 0.012891 0.014094 0.040074 0.003544\n",
"20211109 0.001900 0.002035 0.004808 0.005787 0.016465 0.002602"
"债券型(子类) 中长期纯债型基 可投股票型债券基金 可投转债型债券基金 可转债基金 增强指数型债券基金 短期纯债型基金\n",
"level_0 \n",
"20150430 0.036105 0.082163 0.038693 0.187308 0.059499 0.022672\n",
"20150731 0.023383 -0.001256 0.017216 -0.153189 -0.038023 0.021298\n",
"20151030 0.023308 0.020890 0.021445 0.002177 0.009210 0.023522\n",
"20160129 0.008959 -0.011733 0.008502 -0.110337 0.001346 0.011113\n",
"20160429 0.002100 0.008564 NaN -0.007621 0.006491 0.002734\n",
"20160729 0.021830 0.022154 0.023963 -0.001476 0.012573 0.014217\n",
"20161031 0.013889 0.014182 0.012739 0.038147 0.007946 0.009114\n",
"20170126 -0.011543 -0.018677 -0.022530 -0.054809 -0.009192 -0.005379\n",
"20170428 0.000134 -0.001237 -0.003287 -0.021660 0.006958 0.002661\n",
"20170731 0.015322 0.022156 0.022763 0.055481 0.012028 0.013772\n",
"20171031 0.004665 0.006195 0.003719 -0.018706 0.009830 0.005774\n",
"20180131 0.005751 0.003891 0.002086 0.004519 0.001127 0.006211\n",
"20180427 0.014538 -0.006644 0.010151 -0.048981 -0.013632 0.178702\n",
"20180731 0.016953 0.000240 -0.004194 -0.027024 -0.000349 0.015208\n",
"20181031 0.007957 -0.011400 0.003991 -0.041538 -0.009957 0.007363\n",
"20190131 0.020873 0.024284 0.023449 0.024033 0.011306 0.016589\n",
"20190430 0.008140 0.027582 0.011102 0.093042 0.028946 0.004177\n",
"20190731 0.014330 0.011961 0.014872 0.010356 0.016867 0.014114\n",
"20191031 0.007686 0.010896 0.008712 0.026741 0.020552 0.007165\n",
"20200123 0.018250 0.034985 0.025543 0.082998 0.047721 0.011962\n",
"20200430 0.026888 0.019680 0.024675 0.012586 0.038782 0.023184\n",
"20200731 -0.010954 0.038132 0.002004 0.121129 0.048043 -0.000336\n",
"20201030 0.005078 -0.001265 0.004291 -0.013845 -0.004056 0.006425\n",
"20210129 0.006091 0.025515 0.006651 0.035268 0.031199 0.006748\n",
"20210430 0.011791 0.003391 0.018148 -0.005664 -0.005393 0.008327\n",
"20210730 0.014824 0.026406 0.024361 0.101547 0.068729 0.009902\n",
"20211029 0.007155 0.011294 0.015221 0.041408 -0.000834 0.007129\n",
"20211109 0.002159 0.004652 0.006286 0.016449 0.004958 0.001475"
]
},
"execution_count": 42,
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
......@@ -891,14 +956,6 @@
"final_report.pivot_table(index=\"level_0\", columns=\"债券型(子类)\", values=\"chg.\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "2762fbf4-03eb-49e8-9c8c-d9564988145d",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
......
......@@ -21,7 +21,7 @@
},
{
"cell_type": "code",
"execution_count": 11,
"execution_count": 2,
"id": "47939edc-07d2-4c8e-b061-187806e124ea",
"metadata": {},
"outputs": [],
......@@ -33,7 +33,43 @@
},
{
"cell_type": "code",
"execution_count": 12,
"execution_count": 3,
"id": "80dec4d7-8fec-4eee-8008-7bbf60494751",
"metadata": {},
"outputs": [],
"source": [
"hard_coded_etf = [\"511990.OF\",\n",
" \"511980.OF\",\n",
" \"511970.OF\",\n",
" \"511960.OF\",\n",
" \"511950.OF\",\n",
" \"511930.OF\",\n",
" \"511920.OF\",\n",
" \"511910.OF\",\n",
" \"511900.OF\",\n",
" \"511880.OF\",\n",
" \"511860.OF\",\n",
" \"511850.OF\",\n",
" \"511830.OF\",\n",
" \"511820.OF\",\n",
" \"511810.OF\",\n",
" \"511800.OF\",\n",
" \"511770.OF\",\n",
" \"511700.OF\",\n",
" \"511690.OF\",\n",
" \"511670.OF\",\n",
" \"511660.OF\",\n",
" \"511650.OF\",\n",
" \"511620.OF\",\n",
" \"511600.OF\",\n",
" \"159005.OF\",\n",
" \"159003.OF\",\n",
" \"159001.OF\"]"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "9a596482-dd98-49dc-b717-c17177f2cd64",
"metadata": {},
"outputs": [],
......@@ -41,23 +77,26 @@
"# 获取所有目标货币型基金(清算结束日期晚于当前日)\n",
"\n",
"security_info = fd_alive_funds(today, 2205)\n",
"security_ids = security_info.SECURITYID.unique().tolist()"
"security_ids = security_info.SECURITYID.unique().tolist()\n",
"basic_info = fd_basicinfo(security_ids)\n",
"etf_security_codes = basic_info[basic_info.FSYMBOL.isin([c.split(\".\")[0] for c in hard_coded_etf])].SECURITYID.unique()"
]
},
{
"cell_type": "code",
"execution_count": 15,
"execution_count": 5,
"id": "5ccf2dc7-fea9-4d52-b15d-e8ff55fac3dc",
"metadata": {},
"outputs": [],
"source": [
"# 分类\n",
"security_info[\"货币型(子类)\"] = \"货币型基金\""
"security_info.loc[security_info.SECURITYID.isin(etf_security_codes), \"货币型(子类)\"] = \"场内货币型基金\"\n",
"security_info.loc[pd.isnull(security_info[\"货币型(子类)\"]), \"货币型(子类)\"] = \"普通货币型基金\""
]
},
{
"cell_type": "code",
"execution_count": 16,
"execution_count": 6,
"id": "9d34507e-9efd-479a-8b25-a095de5a552c",
"metadata": {},
"outputs": [
......@@ -97,11 +136,18 @@
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>货币型基金</th>\n",
" <td>711</td>\n",
" <td>711</td>\n",
" <td>711</td>\n",
" <td>711</td>\n",
" <th>场内货币型基金</th>\n",
" <td>27</td>\n",
" <td>27</td>\n",
" <td>27</td>\n",
" <td>27</td>\n",
" </tr>\n",
" <tr>\n",
" <th>普通货币型基金</th>\n",
" <td>683</td>\n",
" <td>683</td>\n",
" <td>683</td>\n",
" <td>683</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
......@@ -110,10 +156,11 @@
"text/plain": [
" SECURITYID BEGINDATE ENDDATE CLASSCODE\n",
"货币型(子类) \n",
"货币型基金 711 711 711 711"
"场内货币型基金 27 27 27 27\n",
"普通货币型基金 683 683 683 683"
]
},
"execution_count": 16,
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
......@@ -125,7 +172,7 @@
{
"cell_type": "code",
"execution_count": null,
"id": "7e30b869-ddb2-4b75-9918-6931b7c00b05",
"id": "23a36fd2-cb27-4b06-b706-6a7528d6c056",
"metadata": {},
"outputs": [],
"source": []
......
......@@ -2,7 +2,7 @@
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"execution_count": 10,
"id": "de082674-0285-4894-905a-52da1ab1727d",
"metadata": {},
"outputs": [],
......@@ -21,7 +21,7 @@
},
{
"cell_type": "code",
"execution_count": 2,
"execution_count": 11,
"id": "11d2dbfe-b1c7-41b1-8df3-b6f40b096f83",
"metadata": {},
"outputs": [],
......@@ -33,7 +33,7 @@
},
{
"cell_type": "code",
"execution_count": 3,
"execution_count": 12,
"id": "004a8f9f-4011-48c6-a5dd-327cce42de51",
"metadata": {},
"outputs": [
......@@ -43,7 +43,7 @@
"351"
]
},
"execution_count": 3,
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
......@@ -58,7 +58,7 @@
},
{
"cell_type": "code",
"execution_count": 6,
"execution_count": 13,
"id": "fc897e0e-46f1-48a2-be9a-6381086c94bf",
"metadata": {},
"outputs": [],
......@@ -68,19 +68,20 @@
},
{
"cell_type": "code",
"execution_count": 7,
"execution_count": 14,
"id": "c3e8441c-d3c5-48f7-aa98-0b3aa7794767",
"metadata": {},
"outputs": [],
"source": [
"df.loc[df.CLASSCODE.str.startswith(\"221001\"), \"FOF型(子类)\"] = \"偏股混合型FOF基金\"\n",
"df.loc[df.CLASSCODE.str.startswith(\"221002\"), \"FOF型(子类)\"] = \"平衡混合型FOF基金\"\n",
"df.loc[df.CLASSCODE.str.startswith(\"221003\"), \"FOF型(子类)\"] = \"偏债混合型FOF基金\""
"df.loc[df.CLASSCODE.str.startswith(\"221003\"), \"FOF型(子类)\"] = \"偏债混合型FOF基金\"\n",
"df.loc[df.CLASSCODE.str.startswith(\"221004\"), \"FOF型(子类)\"] = \"养老型FOF基金\""
]
},
{
"cell_type": "code",
"execution_count": 9,
"execution_count": 15,
"id": "2f43d675-50a9-4eb7-ae94-13cb235d93d7",
"metadata": {},
"outputs": [
......@@ -152,7 +153,7 @@
"平衡混合型FOF基金 338 338 338 338"
]
},
"execution_count": 9,
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
......@@ -164,7 +165,7 @@
{
"cell_type": "code",
"execution_count": null,
"id": "2234dfb1-5b08-44d4-91bf-e52a43bf4076",
"id": "af92574c-fee9-47f1-9645-898ac73c559f",
"metadata": {},
"outputs": [],
"source": []
......
......@@ -2,7 +2,7 @@
"cells": [
{
"cell_type": "code",
"execution_count": 11,
"execution_count": 1,
"id": "275ffc70-ee9f-4ed5-ad70-cbee8636a0a9",
"metadata": {},
"outputs": [],
......@@ -15,7 +15,7 @@
},
{
"cell_type": "code",
"execution_count": 103,
"execution_count": 2,
"id": "b4ff629c-a7ef-4c23-bc7e-5ae87c25f057",
"metadata": {},
"outputs": [],
......@@ -28,7 +28,7 @@
},
{
"cell_type": "code",
"execution_count": 104,
"execution_count": 3,
"id": "3f7ce006-5b21-445b-ac17-25683e2dc6ea",
"metadata": {},
"outputs": [
......@@ -166,7 +166,7 @@
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15094</th>\n",
" <th>15092</th>\n",
" <td>960027.OF</td>\n",
" <td>博时信用债券R</td>\n",
" <td>契约型开放式</td>\n",
......@@ -182,7 +182,7 @@
" <td>收益型</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15095</th>\n",
" <th>15093</th>\n",
" <td>960028.OF</td>\n",
" <td>建信优选成长H</td>\n",
" <td>契约型开放式</td>\n",
......@@ -198,7 +198,7 @@
" <td>稳健成长型</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15096</th>\n",
" <th>15094</th>\n",
" <td>960029.OF</td>\n",
" <td>建信双息红利H</td>\n",
" <td>契约型开放式</td>\n",
......@@ -214,7 +214,7 @@
" <td>稳健成长型</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15097</th>\n",
" <th>15095</th>\n",
" <td>960033.OF</td>\n",
" <td>农银汇理消费主题H</td>\n",
" <td>契约型开放式</td>\n",
......@@ -230,7 +230,7 @@
" <td>稳健成长型</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15098</th>\n",
" <th>15096</th>\n",
" <td>960041.OF</td>\n",
" <td>华泰柏瑞量化增强H</td>\n",
" <td>契约型开放式</td>\n",
......@@ -247,7 +247,7 @@
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>15099 rows × 13 columns</p>\n",
"<p>15097 rows × 13 columns</p>\n",
"</div>"
],
"text/plain": [
......@@ -258,11 +258,11 @@
"3 000005.OF 嘉实增强信用 契约型开放式 债券型基金 中长期纯债型基金 000005BI.WI \n",
"4 000006.OF 西部利得量化成长A 契约型开放式 混合型基金 偏股混合型基金 000006BI.WI \n",
"... ... ... ... ... ... ... \n",
"15094 960027.OF 博时信用债券R 契约型开放式 债券型基金 混合债券型二级基金 960027BI.WI \n",
"15095 960028.OF 建信优选成长H 契约型开放式 混合型基金 偏股混合型基金 960028BI.WI \n",
"15096 960029.OF 建信双息红利H 契约型开放式 债券型基金 混合债券型二级基金 960029BI.WI \n",
"15097 960033.OF 农银汇理消费主题H 契约型开放式 混合型基金 偏股混合型基金 960033BI.WI \n",
"15098 960041.OF 华泰柏瑞量化增强H 契约型开放式 混合型基金 偏股混合型基金 960041BI.WI \n",
"15092 960027.OF 博时信用债券R 契约型开放式 债券型基金 混合债券型二级基金 960027BI.WI \n",
"15093 960028.OF 建信优选成长H 契约型开放式 混合型基金 偏股混合型基金 960028BI.WI \n",
"15094 960029.OF 建信双息红利H 契约型开放式 债券型基金 混合债券型二级基金 960029BI.WI \n",
"15095 960033.OF 农银汇理消费主题H 契约型开放式 混合型基金 偏股混合型基金 960033BI.WI \n",
"15096 960041.OF 华泰柏瑞量化增强H 契约型开放式 混合型基金 偏股混合型基金 960041BI.WI \n",
"\n",
" 单位净值\\n[交易日期] 最新收盘日\\n[单位] 元 SECURITYID FDNAME \\\n",
"0 0.9950 1030000006 华夏成长证券投资基金 \n",
......@@ -271,11 +271,11 @@
"3 1.0240 1030002016 嘉实增强信用定期开放债券型证券投资基金 \n",
"4 1.8607 1030013094 西部利得量化成长混合型发起式证券投资基金 \n",
"... ... ... ... \n",
"15094 1.0060 1030007622 博时信用债券投资基金 \n",
"15095 2.2780 1030007021 建信优选成长混合型证券投资基金 \n",
"15096 1.0770 1030007022 建信双息红利债券型证券投资基金 \n",
"15097 4.6746 1030011706 农银汇理消费主题混合型证券投资基金 \n",
"15098 1.6860 1030017973 华泰柏瑞量化增强混合型证券投资基金 \n",
"15092 1.0060 1030007622 博时信用债券投资基金 \n",
"15093 2.2780 1030007021 建信优选成长混合型证券投资基金 \n",
"15094 1.0770 1030007022 建信双息红利债券型证券投资基金 \n",
"15095 4.6746 1030011706 农银汇理消费主题混合型证券投资基金 \n",
"15096 1.6860 1030017973 华泰柏瑞量化增强混合型证券投资基金 \n",
"\n",
" SNAMECOMP FSYMBOL FDNATURE INVESTSTYLE \n",
"0 None 000001.OF 证券投资基金 成长型 \n",
......@@ -284,16 +284,16 @@
"3 None 000005.OF 证券投资基金 稳健成长型 \n",
"4 西部利得量化成长混合 000006.OF 证券投资基金 稳健成长型 \n",
"... ... ... ... ... \n",
"15094 博时信用债券 960027.OF 证券投资基金 收益型 \n",
"15095 建信优选成长混合 960028.OF 证券投资基金 稳健成长型 \n",
"15096 建信双息红利债券 960029.OF 证券投资基金 稳健成长型 \n",
"15097 农银汇理消费主题混合 960033.OF 证券投资基金 稳健成长型 \n",
"15098 华泰柏瑞量化增强混合 960041.OF 证券投资基金 稳健成长型 \n",
"15092 博时信用债券 960027.OF 证券投资基金 收益型 \n",
"15093 建信优选成长混合 960028.OF 证券投资基金 稳健成长型 \n",
"15094 建信双息红利债券 960029.OF 证券投资基金 稳健成长型 \n",
"15095 农银汇理消费主题混合 960033.OF 证券投资基金 稳健成长型 \n",
"15096 华泰柏瑞量化增强混合 960041.OF 证券投资基金 稳健成长型 \n",
"\n",
"[15099 rows x 13 columns]"
"[15097 rows x 13 columns]"
]
},
"execution_count": 104,
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
......@@ -304,7 +304,7 @@
},
{
"cell_type": "code",
"execution_count": 105,
"execution_count": 4,
"id": "38f0b628-0cc7-4042-8f6a-4e54a272419f",
"metadata": {},
"outputs": [],
......@@ -340,12 +340,13 @@
"total.loc[total[\"投资类型(一级分类)\"] == \"FOF基金\", \"CLASSCODE1\"] = \"2210\"\n",
"total.loc[total[\"投资类型(二级分类)\"] == \"股票型FOF基金\", \"CLASSCODE2\"] = \"221001\"\n",
"total.loc[total[\"投资类型(二级分类)\"] == \"混合型FOF基金\", \"CLASSCODE2\"] = \"221002\"\n",
"total.loc[total[\"投资类型(二级分类)\"] == \"债券型FOF基金\", \"CLASSCODE2\"] = \"221003\""
"total.loc[total[\"投资类型(二级分类)\"] == \"债券型FOF基金\", \"CLASSCODE2\"] = \"221003\"\n",
"total.loc[total[\"投资类型(二级分类)\"] == \"养老型FOF基金\", \"CLASSCODE2\"] = \"221004\""
]
},
{
"cell_type": "code",
"execution_count": 106,
"execution_count": 5,
"id": "2da0fc5b-e2a2-4af1-a525-318e57c6b23f",
"metadata": {},
"outputs": [
......@@ -497,7 +498,7 @@
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15094</th>\n",
" <th>15092</th>\n",
" <td>960027.OF</td>\n",
" <td>博时信用债券R</td>\n",
" <td>契约型开放式</td>\n",
......@@ -515,7 +516,7 @@
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15095</th>\n",
" <th>15093</th>\n",
" <td>960028.OF</td>\n",
" <td>建信优选成长H</td>\n",
" <td>契约型开放式</td>\n",
......@@ -533,7 +534,7 @@
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15096</th>\n",
" <th>15094</th>\n",
" <td>960029.OF</td>\n",
" <td>建信双息红利H</td>\n",
" <td>契约型开放式</td>\n",
......@@ -551,7 +552,7 @@
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15097</th>\n",
" <th>15095</th>\n",
" <td>960033.OF</td>\n",
" <td>农银汇理消费主题H</td>\n",
" <td>契约型开放式</td>\n",
......@@ -569,7 +570,7 @@
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15098</th>\n",
" <th>15096</th>\n",
" <td>960041.OF</td>\n",
" <td>华泰柏瑞量化增强H</td>\n",
" <td>契约型开放式</td>\n",
......@@ -588,7 +589,7 @@
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>15099 rows × 15 columns</p>\n",
"<p>15097 rows × 15 columns</p>\n",
"</div>"
],
"text/plain": [
......@@ -599,11 +600,11 @@
"3 000005.OF 嘉实增强信用 契约型开放式 债券型基金 中长期纯债型基金 000005BI.WI \n",
"4 000006.OF 西部利得量化成长A 契约型开放式 混合型基金 偏股混合型基金 000006BI.WI \n",
"... ... ... ... ... ... ... \n",
"15094 960027.OF 博时信用债券R 契约型开放式 债券型基金 混合债券型二级基金 960027BI.WI \n",
"15095 960028.OF 建信优选成长H 契约型开放式 混合型基金 偏股混合型基金 960028BI.WI \n",
"15096 960029.OF 建信双息红利H 契约型开放式 债券型基金 混合债券型二级基金 960029BI.WI \n",
"15097 960033.OF 农银汇理消费主题H 契约型开放式 混合型基金 偏股混合型基金 960033BI.WI \n",
"15098 960041.OF 华泰柏瑞量化增强H 契约型开放式 混合型基金 偏股混合型基金 960041BI.WI \n",
"15092 960027.OF 博时信用债券R 契约型开放式 债券型基金 混合债券型二级基金 960027BI.WI \n",
"15093 960028.OF 建信优选成长H 契约型开放式 混合型基金 偏股混合型基金 960028BI.WI \n",
"15094 960029.OF 建信双息红利H 契约型开放式 债券型基金 混合债券型二级基金 960029BI.WI \n",
"15095 960033.OF 农银汇理消费主题H 契约型开放式 混合型基金 偏股混合型基金 960033BI.WI \n",
"15096 960041.OF 华泰柏瑞量化增强H 契约型开放式 混合型基金 偏股混合型基金 960041BI.WI \n",
"\n",
" 单位净值\\n[交易日期] 最新收盘日\\n[单位] 元 SECURITYID FDNAME \\\n",
"0 0.9950 1030000006 华夏成长证券投资基金 \n",
......@@ -612,11 +613,11 @@
"3 1.0240 1030002016 嘉实增强信用定期开放债券型证券投资基金 \n",
"4 1.8607 1030013094 西部利得量化成长混合型发起式证券投资基金 \n",
"... ... ... ... \n",
"15094 1.0060 1030007622 博时信用债券投资基金 \n",
"15095 2.2780 1030007021 建信优选成长混合型证券投资基金 \n",
"15096 1.0770 1030007022 建信双息红利债券型证券投资基金 \n",
"15097 4.6746 1030011706 农银汇理消费主题混合型证券投资基金 \n",
"15098 1.6860 1030017973 华泰柏瑞量化增强混合型证券投资基金 \n",
"15092 1.0060 1030007622 博时信用债券投资基金 \n",
"15093 2.2780 1030007021 建信优选成长混合型证券投资基金 \n",
"15094 1.0770 1030007022 建信双息红利债券型证券投资基金 \n",
"15095 4.6746 1030011706 农银汇理消费主题混合型证券投资基金 \n",
"15096 1.6860 1030017973 华泰柏瑞量化增强混合型证券投资基金 \n",
"\n",
" SNAMECOMP FSYMBOL FDNATURE INVESTSTYLE CLASSCODE1 CLASSCODE2 \n",
"0 None 000001.OF 证券投资基金 成长型 2202 NaN \n",
......@@ -625,16 +626,16 @@
"3 None 000005.OF 证券投资基金 稳健成长型 2203 220303 \n",
"4 西部利得量化成长混合 000006.OF 证券投资基金 稳健成长型 2202 NaN \n",
"... ... ... ... ... ... ... \n",
"15094 博时信用债券 960027.OF 证券投资基金 收益型 2203 NaN \n",
"15095 建信优选成长混合 960028.OF 证券投资基金 稳健成长型 2202 NaN \n",
"15096 建信双息红利债券 960029.OF 证券投资基金 稳健成长型 2203 NaN \n",
"15097 农银汇理消费主题混合 960033.OF 证券投资基金 稳健成长型 2202 NaN \n",
"15098 华泰柏瑞量化增强混合 960041.OF 证券投资基金 稳健成长型 2202 NaN \n",
"15092 博时信用债券 960027.OF 证券投资基金 收益型 2203 NaN \n",
"15093 建信优选成长混合 960028.OF 证券投资基金 稳健成长型 2202 NaN \n",
"15094 建信双息红利债券 960029.OF 证券投资基金 稳健成长型 2203 NaN \n",
"15095 农银汇理消费主题混合 960033.OF 证券投资基金 稳健成长型 2202 NaN \n",
"15096 华泰柏瑞量化增强混合 960041.OF 证券投资基金 稳健成长型 2202 NaN \n",
"\n",
"[15099 rows x 15 columns]"
"[15097 rows x 15 columns]"
]
},
"execution_count": 106,
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
......@@ -645,7 +646,7 @@
},
{
"cell_type": "code",
"execution_count": 107,
"execution_count": 6,
"id": "2480bcb3-78d7-4afc-9e44-71188f2aad60",
"metadata": {},
"outputs": [],
......@@ -658,7 +659,7 @@
},
{
"cell_type": "code",
"execution_count": 117,
"execution_count": 7,
"id": "f1d322f4-0bd3-4551-9f43-001559cf3ca5",
"metadata": {},
"outputs": [],
......@@ -670,7 +671,7 @@
},
{
"cell_type": "code",
"execution_count": 122,
"execution_count": 8,
"id": "31aeb06e-eeff-41ce-ad9f-84d1348ac994",
"metadata": {},
"outputs": [],
......@@ -680,7 +681,7 @@
},
{
"cell_type": "code",
"execution_count": 116,
"execution_count": 9,
"id": "54abf114-c1f6-4720-8c7c-531e4ed5c5a8",
"metadata": {},
"outputs": [
......@@ -755,35 +756,35 @@
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15070</th>\n",
" <th>15068</th>\n",
" <td>1030024077</td>\n",
" <td>19000101</td>\n",
" <td>19000101</td>\n",
" <td>220501</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15071</th>\n",
" <th>15069</th>\n",
" <td>1030024147</td>\n",
" <td>19000101</td>\n",
" <td>19000101</td>\n",
" <td>220304</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15072</th>\n",
" <th>15070</th>\n",
" <td>1030025701</td>\n",
" <td>19000101</td>\n",
" <td>19000101</td>\n",
" <td>221002</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15074</th>\n",
" <th>15072</th>\n",
" <td>1030006184</td>\n",
" <td>19000101</td>\n",
" <td>19000101</td>\n",
" <td>220103</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15090</th>\n",
" <th>15088</th>\n",
" <td>1030007621</td>\n",
" <td>19000101</td>\n",
" <td>19000101</td>\n",
......@@ -791,7 +792,7 @@
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>7718 rows × 4 columns</p>\n",
"<p>7716 rows × 4 columns</p>\n",
"</div>"
],
"text/plain": [
......@@ -802,16 +803,16 @@
"7 1030002014 19000101 19000101 220501\n",
"9 1030002015 19000101 19000101 220501\n",
"... ... ... ... ...\n",
"15070 1030024077 19000101 19000101 220501\n",
"15071 1030024147 19000101 19000101 220304\n",
"15072 1030025701 19000101 19000101 221002\n",
"15074 1030006184 19000101 19000101 220103\n",
"15090 1030007621 19000101 19000101 220101\n",
"15068 1030024077 19000101 19000101 220501\n",
"15069 1030024147 19000101 19000101 220304\n",
"15070 1030025701 19000101 19000101 221002\n",
"15072 1030006184 19000101 19000101 220103\n",
"15088 1030007621 19000101 19000101 220101\n",
"\n",
"[7718 rows x 4 columns]"
"[7716 rows x 4 columns]"
]
},
"execution_count": 116,
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
......@@ -822,7 +823,7 @@
},
{
"cell_type": "code",
"execution_count": 124,
"execution_count": 10,
"id": "53c62bc0-9356-45f7-a531-949f4e1d5f23",
"metadata": {},
"outputs": [],
......@@ -832,7 +833,7 @@
},
{
"cell_type": "code",
"execution_count": 125,
"execution_count": 11,
"id": "0eacccb4-ba50-4256-939a-9dc06245bd37",
"metadata": {},
"outputs": [
......@@ -845,15 +846,15 @@
"3 2203\n",
"4 2202\n",
" ... \n",
"22812 220501\n",
"22813 220304\n",
"22814 221002\n",
"22815 220103\n",
"22816 220101\n",
"Name: CLASSCODE, Length: 22817, dtype: int64"
"22808 220501\n",
"22809 220304\n",
"22810 221002\n",
"22811 220103\n",
"22812 220101\n",
"Name: CLASSCODE, Length: 22813, dtype: int64"
]
},
"execution_count": 125,
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
......
......@@ -231,22 +231,22 @@ def fd_assetportfolio(security_ids, report_dates_begin, report_dates_end=None):
sec_id_strs = ",".join(["'" + s + "'" for s in security_ids])
if report_dates_end:
query = f"""
SELECT SECODE as SECURITYID, REPORTDATE, BDRTO, CONVBDRTO, EQUITYINVERTO FROM TQ_FD_ASSETPORTFOLIO
SELECT security_id as SECURITYID, report_date as REPORTDATE, bd_rto as BDRTO, conv_bd_rto as CONVBDRTO, equity_inve_rto as EQUITYINVERTO, st_fin_bd_rto as STFINBDRTO, deposit_rto as DEPOSITRTO FROM fd_portfolio
WHERE
REPORTDATE >= '{_to_yyyymmdd(report_dates_begin)}' AND
REPORTDATE <= '{_to_yyyymmdd(report_dates_end)}' AND
ISVALID = 1 AND
SECODE in ({sec_id_strs})
report_date >= '{_to_yyyy_mm_dd(report_dates_begin)}' AND
report_date <= '{_to_yyyy_mm_dd(report_dates_end)}' AND
is_valid = 1 AND
security_id in ({sec_id_strs})
"""
else:
query = f"""
SELECT SECODE as SECURITYID, REPORTDATE, BDRTO, CONVBDRTO, EQUITYINVERTO FROM TQ_FD_ASSETPORTFOLIO
SELECT security_id as SECURITYID, report_date as REPORTDATE, bd_rto as BDRTO, conv_bd_rto as CONVBDRTO, equity_inve_rto as EQUITYINVERTO, st_fin_bd_rto as STFINBDRTO, deposit_rto as DEPOSITRTO FROM fd_portfolio
WHERE
REPORTDATE >= '{report_dates_begin}' AND
ISVALID = 1 AND
SECODE in ({sec_id_strs})
report_date >= '{_to_yyyy_mm_dd(report_dates_begin)}' AND
is_valid = 1 AND
security_id in ({sec_id_strs})
"""
return read_sql(query).sort_values("SECURITYID").reset_index(drop=True)
return read_sql(query, source="mysql").sort_values("SECURITYID").reset_index(drop=True)
def fd_qtfdnav(security_ids, trade_dt):
......
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