Python rampe Shell pour trouver une maison de 80 000 + sources de logements âgées, voir des personnes ordinaires difficiles à acheter une maison à Beijing! 1. Vue d'ensemble
2. Collecte de données3. Nettoyage des données
3.1. Lire les données
3.2. Supprimer les données de stationnement (sous-sol)
3.3. Analyse des informations de liste
4. Manipulation et visualisation de données
4.1. Nombre d'anciens logements dans chaque zone
4.2. Prix moyen des anciens logements dans toutes les régions
4.3. Vieille maison Prix dans tous les domaines
4.4. Vieille zone de logement
4.5. Nombre de vieilles maisons dans différentes zones
4.6. Prix - Distribution de "zone
4.7. Nombre de vieilles maisons dans chaque région - Prix de distribution"
4.8. Nombre de logements anciens dans différentes zones
4.9. Ancien logement "Apartment - Zone" Prix moyen
5. Liste des titres et nuages de la communauté
6. Résumé
1. Vue d'ensemble
a récemment vu une phrase, se sentant très solide, cette phrase est" Quiconque est un enfant plus jeune qu'un enfant, ça n'achète certainement pas les suites ".
En fait, lorsque je suis entré dans la société de la tour d'ivoire, je n'ai pas pensé à la maison. Je me souviens qu'en 2016, les prix du logement ont augmenté et ils ont une conscience de la pièce. Jusqu'à la croissance de l'âge, l'histoire de la maison doit être libérée.
Quelles sont les valeurs incroyables des prix de Guangzhou dans le Nord? Regardez la dernière index de Shell de Shells à voir: Beijing est de 61 300, Shanghai 562 millions, Guangzhou 28 600, Shenzhen 705 millions .
Aujourd'hui, nous considérons plus de 80 000 anciennes informations sur le logement de la coquille pour voir ce que le logement à Beijing est.
Par l'intermédiaire de cet article, vous pouvez trouver des informations multidimensionnelles d'informations multidimensionnelles, de traitement des données Pandas et de PYECHARTS, SEHPARTS, SEACN) + Modèle + Modèle + Maps + Carte + Map + High- Les cartes d'empilement et d'API d'Allemagne sont utilisées. Description des données :
Source de données: la maison recherche des coquilles - le nombre de données de logement lundi: 82, 346 (y compris le stationnement, l'assainissement du traitement des données) Outils environnementaux
.
Demande nécessite une analyse de données Web rptiles et des données de données propres Données de données Nettoyer les données et les pyecharts miniatures dessin Matplotlib dessin marboré
# 请求网页数据函数def get_html(url, proxies): try: rep = requests.get(url, headers= header, proxies= proxies, timeout=6) except Exception as e : print(e) proxies = get_proxies() rep = requests.get(url, headers= header, proxies= proxies, timeout=6) while rep.status_code != 200: proxies = get_proxies() rep = requests.get(url, headers= header, proxies= proxies, timeout=6) html = rep.text html = re.sub('\s', '', html) # 将html文本中非字符数据去掉 return html,proxies# 循环请求每页数据num = 0for page in range(1,pages+1): items = [] time.sleep(random.random()) info_url = f'{url}/pg{page}' try: info_html, proxies = get_html(info_url, proxies) except Exception as e: print(e) continue sellListContent = re.findall(r'<ulclass="sellListContent"log-mod="list">(.*?)</ul>', info_html)[0] Lists = re.findall(r'<liclass="clear">(.*?)</li>', sellListContent) for List in Lists: try: # 获取房屋信息 item = {} item['标题'] = re.findall(r'detail"title="(.*?)"data-hreftype=', List)[0] item['房子ID'] = re.findall(r'housedel_id=(\d+)&', List)[0] item['地址'] = re.findall(r'<ahref="(.*?)">(.*)</a>', List)[0][1] item['详情页'] = re.findall(r'<ahref="(.*?)">(.*)</a>', List)[0][0] item['详情'] = re.findall(r'<spanclass="houseIcon"></span>(.*?)</div>', List)[0] item['总价'] = re.findall(r'<divclass="totalPrice"><span>(\d+\.?\d*)</span>(.*?)</div>', List)[0][0] item['总价单位'] = re.findall(r'<divclass="totalPrice"><span>(\d+\.?\d*)</span>(.*?)</div>', List)[0][1] item['均价'] = re.findall(r'<divclass="unitPrice".*<span>(.*?)</span></div></div></div>', List)[0] item['关注人数'] = re.findall(r'<spanclass="starIcon"></span>(.*?)</div>', List)[0] item['地区'] = areaName item['价格区间'] = priceRange item['户型'] = layout items.append(item) num = num+1 print(f'{num}个房子信息已经采集!') except Exception as e: print(e) print(item) continue
import pandas as pdimport redf = pd.read_excel('贝壳在售二手房数据20201228.xlsx')df.sort_values(by='总价')
# 车位条件,不一定严谨mask = ((df['详情'].str.contains('地下室')) # & (df['详情'].str.contains('1室'))# &(~df['详情'].str.contains(r'地下室\(共[2-9]|[1-9]\d+层\)')) )|((df['详情'].str.contains('底层')) & (df['详情'].str.contains('1室')) &(~df['详情'].str.contains(r'底层\(共[2-9]|[1-9]\d+层\)')) )# 房子house = df[~mask]# 车位carport = df[mask]carport.sort_values(by='总价')
2. Collecte de données
Les coquillages trouvent des données de grimper relativement simples, simples bougissant régulièrement et analysent le texte Web HTML. Nous écrivons pour des boucles, des demandes de données avec des demandes et utilisons des expressions régulières pour effectuer des listes de liste.
affirme que l'ensemble du processus de reptiles n'est pas compliqué, il n'est pas non plus détaillé et le sujet suivant explique comment obtenir toutes les données.
Code d'analyse des données répertoriés comme suit:
# 详情信息解析s = '中楼层(共9层)|2007年建|1室1厅|24.78平米|北'# s = '地下室|2014年建|1室0厅|39.52平米|东'# s = '底层(共2层)5室3厅|326.56平米|东南西北'# s = '地下室1室0厅|11.9平米|南'# re.split(r'(.+?)(\(共(.*)层\))*(\|((.*)年建)*\|)*?(\d+室.*?)\|(.*)平米\|(.*)',s)re.split(r'(.+?)(?:\(共(.*)层\))?(?:\|(.*)年建\|)*?(\d+室.*?)\|(.*)平米\|(.*)',s)
Description En raison de la prise de charge sombre Multi sur 100 pages, environ 30 chambresI Page, si nous voulons obtenir toutes les données, vous devez faire attention à deux points:
houseData = house.copy()houseData.loc[:,'楼层'] = houseData['详情'].apply(lambda x : re.split(r'(.+?)(?:\(共(.*)层\))?(?:\|(.*)年建\|)*?(\d+室.*?)\|(.*)平米\|(.*)',x)[1])houseData.loc[:,'楼高'] = houseData['详情'].apply(lambda x : re.split(r'(.+?)(?:\(共(.*)层\))?(?:\|(.*)年建\|)*?(\d+室.*?)\|(.*)平米\|(.*)',x)[2])houseData.loc[:,'建筑年份'] = houseData['详情'].apply(lambda x : re.split(r'(.+?)(?:\(共(.*)层\))?(?:\|(.*)年建\|)*?(\d+室.*?)\|(.*)平米\|(.*)',x)[3])houseData.loc[:,'户型'] = houseData['详情'].apply(lambda x : re.split(r'(.+?)(?:\(共(.*)层\))?(?:\|(.*)年建\|)*?(\d+室.*?)\|(.*)平米\|(.*)',x)[4])houseData.loc[:,'面积'] = houseData['详情'].apply(lambda x : re.split(r'(.+?)(?:\(共(.*)层\))?(?:\|(.*)年建\|)*?(\d+室.*?)\|(.*)平米\|(.*)',x)[5])houseData.loc[:,'朝向'] = houseData['详情'].apply(lambda x : re.split(r'(.+?)(?:\(共(.*)层\))?(?:\|(.*)年建\|)*?(\d+室.*?)\|(.*)平米\|(.*)',x)[6])
peut être combiné par l'URL après filtrant la taille de particules fines, généralement capable de passer la zone et du prix VI et des unités sont incorporées. J'utilise cette politique de combinaison; Étant donné que le site est limité par la fréquence d'accès du site Web et le nombre de fois, vous devez utiliser des agents IP, les achats d'agents d'achat peuvent répondre aux besoins d'apprentissage, ainsi que le paramètre proxy dans la fonction Demande.Get ().
3. Données de nettoyage
# 均价信息解析houseData['均价'] = houseData['均价'].str.extract(r'(\d+)')# 发布时间信息解析houseData['发布时间'] = houseData['关注人数'].str.extract(r'\/(\d+[年|月|日])') # 关注人数信息解析houseData['关注人数'] = houseData['关注人数'].str.extract(r'(\d+)人关注')
Cette section que nous utilisons
Pandaet RE , principalement pour filtrer les données de stationnement Données spatiales de la liste non résidentielle et analysez la liste des informations plus utiles.
ershoufang = houseData[ '房子ID', '地址', '总价', '总价单位', '均价', '关注人数', '地区', '价格区间', '户型', '楼层', '楼高', '建筑年份', '面积', '朝向', '发布时间']ershoufang
3.1. Lire les données
Aperçu des données d'origine
Nous pouvons voir que plus d'informations dans les données d'origine, telles que le sol, l'appartement, la surface, l'architecture et l'orientation, etc. Cette section Ensuite, nous avons étém propre. Dans le même temps, plus d'informations sont également contenues dans le prix moyen et l'attention sur le nombre de personnes.
3.2. Supprimer les données de stationnement (sous-sol)
import matplotlib.pyplot as pltplt.rcParams['font.family'] = ['Microsoft YaHei'] #设置全局默认字体 为 幼圆plt.rcParams['axes.unicode_minus'] = False # 解决中文字体下负号显示问题plt.rcParams["axes.labelsize"] = 16 # 设置全局轴标签字典大小import seaborn as snssns.set_style("darkgrid",{"font.family":['Microsoft YaHei', 'SimHei']}) #seaborn绘图的字体设置from pyecharts.globals import CurrentConfig, NotebookTypeCurrentConfig.NOTEBOOK_TYPE = NotebookType.JUPYTER_LABfrom pyecharts import options as optsfrom pyecharts.commons.utils import JsCodefrom pyecharts.charts import * data = ershoufang.copy()
Space Park et certaines Villa Data
3.3. Liste des informations Analyse
# 各地区二手房源数beijing = data.groupby('地区',as_index=False)['房子ID'].count().sort_values('房子ID',ascending=False).reset_index(drop=True)beijing.loc[~beijing['地区'].str.endswith('区'),'地区']=beijing['地区']+'区'
Résultats détaillés
J'ai utilisé les expressions formelles du commentaire. Ensuite, dans le groupe d'échange, je connais la déesse, je sais ** ?: ** Expression, puis la dernière personne a appliqué une meilleure expression. Ensuite, nous effectuons des opérations connexes pour les données de données.
# 绘制地图(区)c = ( Map(init_opts=opts.InitOpts(theme='dark', width='800px')) .add("房源数", [list(z) for z in zip(beijing['地区'].to_list(), beijing['房子ID'].to_list())], "北京", label_opts=opts.LabelOpts(is_show=False)) .set_global_opts( title_opts=opts.TitleOpts(title="贝壳北京二手房源数分布", subtitle='数据采集日期:2020年12月'), visualmap_opts=opts.VisualMapOpts(max_=15000) ) )c.render_notebook()
Analyse détaillée des nouvelles adresses
Prix moyens, temps de libération et analyse des informations numériques,
Extractionutilisé ici, les gens peuvent facilement comprendre le rôle.son!
# 富文本rich_text = { "a": {"color": "#999", "lineHeight": 22, "align": "center"}, "b": {"fontSize": 12, "lineHeight": 33}, "per": { "color": "#eee", "backgroundColor": "#334455", "padding": [2, 4], "borderRadius": 2, },}location = beijing['地区'].to_list()num = beijing['房子ID'].to_list()pie = (Pie(init_opts=opts.InitOpts(theme='dark', width='800px', height='560px', )) .add('二手房源数', [list(z) for z in zip(location, num)], radius=200, #设置饼图半径 label_opts=opts.LabelOpts(position='outsiede', formatter="{b|{b}: }{c} {per|{d}%} ", rich=rich_text)) .set_global_opts(legend_opts=opts.LegendOpts(is_show=False), title_opts=opts.TitleOpts(title="贝壳北京各区二手房源数量占比", subtitle='数据采集日期:2020年12月'),) )pie.render_notebook()
Prix moyen - Publication - Suivez le nombre d'analyses d'informations
Enfin, nous sélectionnons uniquement les données que vous souhaitez utiliser, Total
Chambre Source.
#房价均价平均值data.均价.mean()58799.88320445407
4. Manipulation et visualisation de données
Dans la partie 3, nous avons introduit la bibliothèque de Pandas, c'est intuitif Vous devez introduire la galerie de photos suivante et faire des paramètres globaux.
4.1. Le nombre de vieilles maisons dans différentes zones
Le nombre de zones répertoriées est le comté de Chaoyang, suivi de Fengtai et de Hadian, en focalisant essentiellement la ville centrale. Comme la banlieue nord de Beijing Yan Khanh, Huairou, Miyun et Pinggu et d'autres maisons.
Code de dessin:
Nombre de personnes anciennes à Beijing Beige, le comté de Chaoyang, près de 28% avec un taux de 202 000, la moitié de la liste est à Chaoyang Comté, Fengtai et Haidian. À l'extérieurTrois zones, est, Xicheng dans la petite zone centrale, mais le nombre de maisons est, mais c'est quelques logements à Shijing Mountain.
Nombre de maisons dans différentes régions
# 均价直方图plt.figure(figsize=(15,8))sns.set_context("talk")sns.histplot(data.均价).set(ylabel='数量')
Code de dessin:
4.2. Prix moyen de l'ancien logement dans différentes zones
[ Prix à la maison à Beijing est de 58 800 yuans par mètre carré! Ceux-ci La capture d'écran suivante, la plate-forme de numéro de réponse publique " Prix moyen de l'ancien logement de Beijing " peut recevoir une adresse de graphique thermique, des frais exonérés pour voir plus de détails.
# 箱线图x_data = list(data['地区'].unique())y_data = [data[data['地区']==x]['均价'].to_list() for x in x_data]Box = (Boxplot(init_opts=opts.InitOpts(theme='dark', width='800px')) .set_global_opts(legend_opts=opts.LegendOpts(is_show=True), xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=45)), title_opts=opts.TitleOpts(title="贝壳北京各区二手房均价箱型图", subtitle='数据采集日期:2020年12月'), ) ) Box.add_xaxis(x_data)Box.add_yaxis("", Box.prepare_data(y_data))Box.render_notebook()
Graphique de prix moyen, nous pouvons voir qu'il y a plus de 50 000 dans Moyenne
, et plus de 70 000 listes sont également beaucoup, le niveau le plus bas ne peut être que de 10 000, le plus élevé qu'il peut obtenir 1,75 million!
Code de dessin:
Boîte moyenne
Dans la carte de prix moyenne, nous pouvons voir, est, Xicheng est la zone principale, le prix moyen de sa maison est vraiment élevé, le prix moyen est proche de
100 000 +; Lundi, Hai Khanh district de l'école de ressources naturelles, le prix moyen est également
aussi élevé que 83 000 +; Chaoyang semble être que les ressources scolaires ne sont pas trop riches, le prix moyen est de 60 000 +; Les prix des autres domaines ne sont plus que les zones ci-dessus, mais aussi fondamentalement réduit de 3 à 5 000!
!
Code de dessin:
Alors, comment se trouvent le classement moyen dans tous les domaines? Nous trouvons également le prix de High Logement Beijing est en fait la ville centrale a été partagée dans de nombreuses ressources de nombreuses ressources différentes.Le prix moyen est la communauté la plus chère
Top 10 des prix précédents du prix dépassé1, 75 millions
par mètre carré, celles-ci sont une nécrose de fées! Ceux-ci Le prix moyen est la communauté la plus chère
Voir ce que Cittic Guo'an est:
China Guoanfu
#房价均价分布(1000万以内)data[data['总价']<1000].总价.mean()458.2997917446772
Qui est le nombre moyen le plus élevé de personnes dans le nombre de quatre régions à Beijing?
District de Chaoyang
Numéro de Beijing
, Préfecture de Fengtai Original de Xiyu , District de Hadian
Wancheng Huafu , Changping District
Provence orientale .
4.3. Total vieille maison Prix dans différentes zones
.
.
]
. . . ** Le prix total de l'ensemble de l'ancien boîtier de Beijing est de 4,58 millions! pseudoG ** Il s'agit toujours de 4 000 ensembles d'immobilier d'une valeur de plus de 10 millions. La capture d'écran suivante, la réponse de la performance du numéro de public "** Ancienne adresse thermique de Beijing, gratuitement pour voir plus de détails. Total Old Logement de la distribution de prix de Beijing Graphiques totaux (à l'exclusion de plus de 10 millions de biens immobiliers) La plupart des prix totaux sont dans 300 - entre 5 millions de , il y a plus de 20 millions de maisons dans la ville. Plus d'un million de maisons principalement de la chambre s'appelle l'école et la taille de l'école La salle de bain est d'environ 20 mètres carrés, ceci est spécifique. Vous pouvez voir l'original. Données pour comprendre ha !!! Total Tableau Total Price Box Carte de la ligne (excluant plus de 10 millions de biens immobiliers) du total Prix d'un ensemble unique, il est toujours identique, et le prix de Hadian et de Haidian près de 5 millions est encore plus élevé. Si vous voulez regarder la salle de Hadian, 7 millions de budgets peuvent inclure HLes meilleurs atouts, bien, 7 millions! Nombre total de cartes de la ligne de prix Nombre de maisons de Beijing avec quatre domaines sont la valeur de HOSSIP? County de Chaoyang Dongshengshu, Yunyun Road n ° 8, Jardin international, District de Fengtai, Longhu Yihe Hors de Hadian, Xiang Son Village de Qingqi, compte plus de 70 millions de maisons de Proméhaussie à Changping Comté. Le prix total de chaque zone est de 5 où est le prix le plus coûteux [ Outre la première famille de 40, n ° 40, Road Xinan, Miyun, est super super super haut de gamme Superior Supérieur supérieur au deuxième tour. Grandes zones. Bien sûr, voyez ces choses pas vraiment trop importantes! Le prix total est le plus cher 10 Ce qui suit est un seul manoir de Miyun, 24 000 appartements? Un total de 11 étages! Ceux-ci 4.4. Vieille zone de logement de la maison dans tous les domaines Nous supprimons 372 définit plus de 400 ménagesFamille, seules 80 000 chambres sont inférieures à 400. Graphique régional Dans ces listes, cette zone est située entre 50-70 et et 80- 90 La plus grande liste, ces bases sont une chambre à coucher, grande 2 ou petites 3! La carte de la zone utilisée En revanche, la liste de grande échelle est fondamentalement dans la zone que le centre se termine la zone urbaine, Le prix est relativement faible. Changping est vraiment un très bon endroit. Le prix moyen des personnes âgées est très coûteux, mais la liste à grande échelle occupe davantage. 4.5. Rejeter la vieille maison dans différentes zones à Beijing, la majeure partie de l'ancien logement a été construite à partir de 2000 et 2010, presque tout après la réforme et l'ouverture dans les années 1980. . ] 4.6. Distribuer des logements anciens dans de nombreux domaines Du nombre total de prix du logement à des moments différents, jusqu'à 400-5 millions de maïsJe suis à la maison, suivi d'une liste de 500 à 6 millions de dong. Bien sûr, il y a plus de 2,5 millions de visites dans le district de Xicheng, Xicheng, Haidian et Chaoyang. Grâce à de meilleures données, nous constatons que ce type de maison est essentiellement de 20 appartements. L'essentiel de la pièce ne convient pas au salon! Les produits de liste étrangères sont dérivés de ressources éducatives très importantes et non! Ces 4.7. Vieux logements dans de nombreux domaines - Quantité Prix de distribution La plupart des catégories sont les plus de 4 chambres à coucher, 3 chambres à coucher et 1 salon pour les familles vivant dans une petite maison, la plupart des prix sont passés de 400-5 millions de personnes. ! 4.8. Vieux logements dans différents domaines - Distribution "Zone 2 pièces Ce type de famille convient principalement à une famille, presque aucun problème. 4.9. Vieux logements dans différents domaines - Répartition moyenne des prix de la zone ] Du prix moyen de différents appartements, une distance significative n'est pas grande. Nous avons regardé la pièce principale 1 chambre 1 chambre, 2 chambres et 1 chambre et 3 chambres différentes 1 chambre, Seec 1 chambre 1 salle et 3 chambres 1 chambre sera beaucoup plus grande que 2 chambres 1 chambre, mais cela ne vise pas. Fondamentalement par rapport à la région et au district scolaire, le degré de la centrale est le prix le plus! Ceux-ci Distribuant le prix moyen du logement ancien dans différentes zones Il existe des amis pour faire attention au comté de Fengtai, ont une 4 chambres 9 halls 6 salles de bains à domicile, moyenne Prix jusqu'à 150 000, en fait, nous sommes une villa! Ceux-ci 5. Liste des titres et des nuages de la Communauté concernant la production de nuage de mots, il est utilisé ici Bibliothèque WordCloud . Le code de cartographie du nuage de cette section peut voir l'article précédent "" a une introduction détaillée. Quel type souhaitez-vous utiliser lorsque vous avez une liste?Ch courtiers? TRANSPOSILE NANSHENG a montré une bonne lumière, une ventilation et une respiration sincérité, des ventes sincères sincèrement! Cinq ou cinq ans seulement Peut économiser de l'argent parmi eux, "Five Full" fait référence aux licences immobilières qui commencent à calculer de dépendances, de temps par an ou de plus de cinq ans; Propriétaire faisant référence à cette maison dans la province de la province. Normalement, la maison rencontre la condition «complète» pour réduire la taxe fiscale et commerciale de la Chambre. Quels sont les incendies? De ce nuage est vraiment de la quantité de décisions du nombre de centres de la communauté, Tiantongyuan, pivoine, la vieille maison de la vieille maison de Xinglong Home est vraiment beaucoup! Ces 6. SOMMAIRE Selon le 30 janvier 2020, le recrutement zhilian a publié "2020 la demande de travail hivernale en Chine et le rapport fournit des talents antiques blancs, le salaire moyen de Beijing est " La demande en Chine Winter Travail et le rapport fournit des talents antiques blanches Nous pensons que le prix total est de 4,5 millions est le prix total d'achat, Réduire 35% de paiement conformément à , signifiant 15,75 millions Disponible, année 14 Salaire a été converti ] Ne mangez pas sans boire 10 ans ou plus, Vous pouvez terminer le paiement , mais je ne connais pas la géométrie! Ceux-ci