Studie über die Miete in Tokio mit Python (3-2)

Ergebnisauszug

Gleichzeitig im Blog gepostet: https://leoluistudio.com/blog/24/python%e3%82%92%e4%bd%bf%e3%81%a3%e3%81%a6%e6%9d%b1%e4%ba%ac%e9%83%bd%e5%ae%b6%e8%b3%83%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6%e3%81%ae%e7%a0%94%e7%a9%b6-4%e3%81%ae2/

Statistische Methode 1

Datensammlung


Datenbank

Datenbankstruktur

info
id 1 (PRIMARY KEY)
municipal Chiyoda Ward
train 7 (Gehen Sie zum Bahnhof)
type Wohnung
date 1983
structure Verstärkter Stahl
floor 8
carpark 0 (0 ist keine, 1 ist ja)
price
id 1 (PRIMARY KEY)
pid 160000 (Kreis)
1 (=info id) 7 (Gehen Sie zum Bahnhof)
area 42.9 (Quadrat)
date Osten

Erste 5. Reihe für jeden Tisch db.png


Programme und Ergebnisse

Installieren Sie zuerst die erforderlichen Bibliotheken

import sqlite3
import pandas as pd

import plotly.express as px
import plotly.graph_objects as go
from plotly.offline import plot

from sklearn.decomposition import PCA

Verbinden Sie die Datenbank

#Wenn das Ergebnis nur ausgegeben wird
conn = sqlite3.connect(‘info.db’)
c = conn.cursor()
cursor = c.execute("SQL-Code")
for row in cursor:
    print(Ergebnis)
conn.close()

#Zur Verarbeitung durch Speichern des Ergebnisses
conn = sqlite3.connect(‘info.db’)
df = pd.read_sql_query("SQL-Code", conn)
conn.close()

Schauen Sie sich zunächst die Verteilung der Daten an

#Anzahl der Infozeilen
SELECT COUNT(id) FROM info
#Ergebnis: 82,812

#Anzahl der Zeilen im Preis
SELECT COUNT(id) FROM price
#Ergebnis: 624,499

#Anzahl der "Wohnungen" und "Wohnungen"
SELECT type,COUNT(type) FROM info GROUP BY type
#Ergebnis: Wohnung 33,110 /Herrenhaus 49,702

Verteilung der Fertigstellungstermine

# SQL
SELECT date AS year,COUNT(date) AS count FROM info WHERE date > 0 GROUP BY date

#Graph
fig = px.bar(df, x=’year’, y=’count’, height=500, width=1000)

L1no4.png


Verteilung der Gebäudestruktur

# SQL
SELECT structure,COUNT(structure) AS count FROM info WHERE structure != 0 GROUP BY structure

#Graph
fig = px.bar(df, x=structure, y=’count’, height=500, width=1000)

L1no5.png


Verteilung der Böden

# SQL
SELECT floor,COUNT(floor) AS count FROM info WHERE floor != 0 GROUP BY floor

#Graph
fig = px.bar(df, x=floor, y=’count’, height=500, width=1000)

L1no6A.png

In der obigen Tabelle ist die Verteilung im 20. Stock und darüber überhaupt nicht zu sehen. Schauen wir uns das hier genauer an.

# SQL
SELECT floor,COUNT(floor) AS count FROM info WHERE floor > 20 GROUP BY floor

#Graph
fig = px.bar(df, x=floor, y=’count’, height=500, width=1000)

L1no6B.png


Kontinuierliche Variablen (z. B. Preis) müssen gruppiert werden, bevor sie analysiert werden können.

def pricegroup(df):
    if df[‘price’] < 30000:
      return ‘<30,000’
    elif df[‘price’] < 60000:
      return ‘30,000-60,000’
    ……
    else:
      return ‘>270,000’

pricegroup_list = [‘<30,000’,
    ‘30,000-60,000’,
    ‘60,000-90,000’,
    ……
    ‘240,000-270,000’,
    ‘>270,000’]

Preisverteilung

# SQL
SELECT price FROM price

#Datenrahmenverarbeitung df[‘pricegroup’] = df.apply(pricegroup, axis=1)
dfcount = df.groupby([‘pricegroup’]).count()

#Graph
fig = px.bar(dfcount, x=dfcount.index, y=’price’, height=500, width=1000)
fig.update_layout(xaxis={‘categoryorder’:’array’, ‘categoryarray’:pricegroup_list}, yaxis_title=’count’)

L1no7V2.png


Die Flächenverteilung ist gleich

def pricegroup(df):
    if df[‘area’] < 5:
      return ‘<5’
    elif df[‘area’] < 10:
      return ‘5-10’
    ……
    else:
      return ‘>45’

pricegroup_list = [‘<5′, ’5-10′, ’10-15′, ’15-20′,
    ’20-25′, ’25-30′, ’30-35′, ’35-40′,
    ’40-45′,’>45′]

# SQL
SELECT area FROM price

#Datenrahmenverarbeitung
df[‘areagroup’] = df.apply(areagroup, axis=1)
dfcount = df.groupby([‘areagroup’]).count()

#Graph
fig = px.bar(dfcount, x=dfcount.index, y=’area’, height=500, width=1000)
fig.update_layout(xaxis={‘categoryorder’:’array’, ‘categoryarray’:areagroup_list}, yaxis_title=’count’)

L1no8V2.png


Richtungsverteilung

# SQL
SELECT direction,COUNT(direction) AS count FROM price WHERE direction != ‘-‘ GROUP BY direction

#Graph
fig = px.bar(df, x=direction, y=’count’, height=500, width=1000)

L1no9.png


Teilen Sie die Bezirke, Städte und Dörfer vor der Analyse in 23 Bezirke und Städte ein.

m23_list = ["Chiyoda Ward","Chuo-ku",'Minato-ku',"Shinjuku Ward","Bunkyo Ward","Taito","Sumida Ward",
"Koto Ward","Shinagawa Ward","Meguro","Ota-ku","Setagaya","Shibuya Ward","Nakano",
"Suginami","Toshima Ward","Kita Ward","Arakawa","Itabashi Ward","Nerima Ward","Adachi Ward",
"Katsushika","Edogawa Ward"]

municipal_dict = {}
conn = sqlite3.connect(‘info.db’)
c = conn.cursor()
cursor = c.execute(“SELECT id,municipal FROM info”)
for row in cursor:
    municipal_dict.update({row[0]:row[1]})
conn.close()

def municipal(df):
    return municipal_dict[df[‘pid’]]

def municipal23(df):
    if df[‘municipal’] in m23_list:
      return ‘Special Wards’
    else:
      return ‘Non Special Wards’

Verhältnis zwischen Preis und Fläche (unterteilt in 23 Bezirke und Stadtgebiete)

# SQL
SELECT pid,price,area FROM price

#Datenrahmenverarbeitung
df[‘municipal’] = df.apply(municipal, axis=1)
df[‘municipal23’] = df.apply(municipal23, axis=1)
dfmedian = df.groupby([‘pid’, ‘municipal23’])[‘price’, ‘area’].median()
dfmedian_reset = dfmedian.reset_index(level=’municipal23′)

#Graph
fig = px.scatter(dfmedian_reset, x=’area’, y=’price’, color=’municipal23′, labels={‘municipal23’: ‘Special Wards’}, height=500, width=1000)

L2no1.png

Recommended Posts

Studie über die Miete in Tokio mit Python (3-2)
Studie über die Miete in Tokio mit Python (3-3)
Studie über die Miete in Tokio mit Python (3-1 von 3)
Online-Übertragung mit Python
Hinweise zur Installation von Python mit PyEnv
Hinweise zur Verwendung von rstrip mit Python.
Installieren Sie Python unter CentOS mit Pyenv
Installieren Sie Python unter CentOS mit pyenv
Hinweise zur Verwendung von OpenCV mit Windows 10 Python 3.8.3.
Führen Sie Python-Code unter C ++ aus (mit Boost.Python).
Installieren Sie die Python-Bibliothek auf Lambda mit [/ tmp]
Lassen Sie einen Servomotor mit Python auf Raspberry Pi 3 laufen
Ermitteln Sie die Temperatur mit Python auf Raspberry Pi 3!
Python lernen note_002
Python lernen note_000
Python unter Windows
Twitter mit Python3
Python lernen note_006
Starten Sie Python
Python auf Mac
Python lernen note_003
Python lernen note_005
Python auf Windbg
Scraping mit Python
Python lernen note_001
Erster Tag des Python-Studiums
Erstellen Sie die Python3.5 + matplotlib-Umgebung unter Ubuntu 12 mit Anaconda
Erkennen Sie Schiebeschalter mit Python auf Raspberry Pi 3!
Hinweise zur Installation von Python3 und zur Verwendung von pip unter Windows7
Installieren Sie Python 3.8.6 unter macOS BigSur mit pyenv
Erkennen Sie Magnetschalter mit Python auf Raspberry Pi 3!
Hinweise zur Verwendung von dict mit Python [Competition Pro]
Lassen Sie den Summer mit Python auf Raspberry Pi 3 erklingen!
Verwenden Sie Python + Shapely, um Punkte nur in Tokio zu generieren
[Python] Hinweise zur Beschleunigung genetischer Algorithmen mithilfe von Multiprocessing
Grundeinstellungen für die Verwendung von Python3.8 und pip unter CentOS8
Python Conda mit Cygwin
Installieren Sie Python auf der WSL
PyOpenGL-Setup unter Python 3
Installieren Sie Python auf Pidora.
Installieren Sie Scrapy auf Python3
Fibonacci-Sequenz mit Python
[Heroku] Memo zum Bereitstellen von Python-Apps mit Heroku unter Windows [Python]
Installieren Sie Python auf dem Mac
Installieren von Python 3 in einer Mac-Umgebung
Installieren Sie Python3.4 unter CentOS 6.6
Datenbereinigung mit Python
Überprüfen Sie types_map, wenn Sie Mimetypen mit AWS Lambda (Python) verwenden.
Pandas auf python2.6 installieren
Verwenden von Python # externen Paketen
Python Basic ② in Windows
WiringPi-SPI-Kommunikation mit Python
Erstellen Sie mit pyenv eine Python-Umgebung auf Ihrem Mac
Installieren Sie Python unter Windows
Altersberechnung mit Python