プログラマー人工知能Defcos第3期課程内容整理#17+特別講座(データ処理+SQL)

6900 ワード

ドメインの知識があってこそ、これらの資料が有効かどうかを知ることができます.

データ寸法検査


Excel、pandas、SQL、Spark
df.shape()

技術統計


df.describe()

データプリプロセッシング


  • column
    df[['city','country']] = df['address'].split(',', expand=True)

  • はんぷくデータしょり
  • 一意Column、重複値がある場合
    df.Player.value_counts()
  • 何度も繰り返す
    df[df.Player == "Ersan"]
  • pandas機能dropを使用
    df = df.drop_duplicates("Player", keep="first")
    df = df.reset_indes(drop=True)
  • SQL



    structured querry Language
    データベース・システムでデータを処理するための構造化データ・クエリー言語.
    SQLは
    構造化データ
    RDB relation databases
    OSQLは
    非構造化データ
    Json、写真、文章
    約束を守った複数DB
    MySQL, MariaDB, Oracle DB
    各データベースには異なるクエリー方法があります.

    SQLを大きく3つのセクションに分けます。


    DDL:データ構造を定義するコマンド
    DML:データを問合せまたは操作するコマンド
    DCL:データベースのアクセス権を管理制御するコマンド

    DMLの例


    CRUD
    インポート、追加、更新、削除

    Flask


    pymysqlモジュールを使用してMySQLにアクセス
    import pymysql
    # 다른 컴퓨터의 주소
    # 혹은 다른 인스턴스(in cloud)
    # DB를 정의
    db = pymysql.connect("127.0.0.1:3306
    ")
    try :
    	with db.cursor() as cursor
        	# you라고 하는 테이블에서 모든걸 가져와!
        	sql = 'SELECT * FROM you'
            # 인자로 SQL 문자열을 전달
            # f’SELECT {target} FROM you'
            # SELECT name, breed FROM you
            # SELECT name FROM you WHERE id == 10;
    
            cursor.execute(sql)
            # 특정 부분을 가져올 수 있게 함
            result = cursor.fetchall()
    finally :
    	db.close()
    cursor = db.cursor()
    上の方法はGANG SQL

    ORM定義


    Object Related Model


    Tag = 1573, Name = Fido, Breed = Beagle, Color = Brown/White, Age = 1.5
    Class Dog

    データの作成

    class Coffe(Base):
    	# 대응되는 데이터베이스 테이블의 이름
    	__tablename__='coffee'
        id = Column(Integer, primary_key=True)
        # 새로운 열을 만듦
        name = Column(String(20))
        price = Column(Integer)
    createと同じ役割を果たしています.
    idがpk=Trueの場合auto increment指定

    データの追加

    from sqlalchemy.orm import sessionmaker
    Session = sessionmaker(bind=engine)
    session = Session()
    new_coffee = Coffee(name="Dolce Latte", price=6000)
    session.add(new_coffee)
    session.commit()
    Insertと同じ役割を果たし、より直感的に

    データのインポート

    #.filter()로 조건 검색
    result = session.query(Coffee).all()
    for row in result:
    	print(row.name, row.price)