パンダGET MySQLのデータ使用

MySQLのデータは、パンダを使用して取得しました

MySQLは便利なものの、Pythonで動作しますが、頻繁にサーバーからデータを取得し、効率が非常に低いです。パンダを使用した後、分析機能の豊富なも便利になると本当に便利な、パンダとMySQLデータベースからデータを抽出するには、今日ビットを試してみてください、だけでなく、取得データ。

  1. まず、データベース接続、接続オブジェクトなどの共通CONNの確立を確立します
import pymysql
import pandas as pd
class cardb():
    conn = None

    def connect_db(self):
        db_host = "XXXX"
        user = "XXXX"
        pw = "XXXX"
        try:
            # 创建连接数据库
            self.conn = pymysql.connect(db_host, user, pw, "yiche_car_info", use_unicode=True, charset='utf8mb4')
            return self.conn
        except Exception as e:
            print("数据库连接异常!错误%s", e)
            return None
  1. パンダの接続は、取得したデータを使用して確立されます
 try:
            self.conn.ping(reconnect=True)
        except Exception as e:
            print("%s" % e)
            return None
            sql=“select * from viewcarinfo”
        df = pd.read_sql_query(sql % (str_info, str_viewname), con=self.conn)
        print(df)

データは、データフレームの形式を得ました。ラインインデックスによって行は列には、フォームのような列で、インデックスと呼ばれています。

       pz_id cartype_id              pz_name  ...    车型级别 车身型式    前大灯
0    m139120      m4758       2020款1.2L手动超值版  ...     小型车   两厢     卤素
1    m111122      m2790         2014款1.3L标准版  ...     小型车   三厢     卤素
2    m133807      m3067       2019款1.5L手动进取版  ...     小型车   三厢    LED
3    m133409      m4758      2019款1.2LAMT舒适版  ...     小型车   两厢     卤素
4    m139423      m3167       2020款1.4L手动焕新版  ...     小型车   三厢     卤素
..       ...        ...                  ...  ...     ...  ...    ...
343  m129677      m4586  2018款5.3L手自一体白宫一号4座  ...  全尺寸SUV  SUV    LED
344  m136613      m3859      2020款6.0TW12标准版  ...     豪华车   三厢    LED
345  m131852      m4373       2019款S680双调典藏版  ...     豪华车   三厢  矩阵LED
346  m132800      m2078    2019款GT6.0TW12敞篷版  ...     豪华车  敞篷车  矩阵LED
347  m125538      m3044    2017款6.8T手自一体长轴距版  ...     豪华车   三厢     氙气
  1. まず、あなたはPythonのJSONに辞書を保存する必要があることを確立
 json_res = {}
        json_res["item_name"] = []
        json_res["item_option"] = {}
        json_res["item_value"] = []
        json_res["car_prosys_name"] = car_prosys_name
        json_res["car_prosys_value"] = []
        json_res["car_prosys_series_value"] = []
        json_res["car_pricezone_name"] = car_pricezone_name
        json_res["car_pricezone_value"] = []
        json_res["car_pricezone_series_value"] = []
  1. パンダとのデータの解析
    使用データ照会:df.locは、条件を達成することができるフィルタリングデータと結合されたデータの行に配置されます。
    A.濾過またはデータサイズのフィルタに等しいです
item="卤素"
item1 = df.loc[df["前大灯"] == item]  

== <、>あなたは同じサイズの条件や値の全てを満たすデータ行を除外することができ未満より大きく、に等しいです。
N1 = ITEM1 [str_feild] .count( )
"ハロゲン" ==すべてのヘッドライトの行数の統計。

B.ファジーテキスト検索フィルタ
およびファジー検索テキストは、この機能の.str.containsを利用できる
よう

item="卤素"
item2 = df.loc[df["前大灯"].str.contains(item)]

すべてがハロゲンですべての行をカウントすることができます。

n2 = item2[str_feild].count()

C.合同基準
行数の統計の「ハロ」とのすべてのヘッドランプ。
「|」であるか、効果あなたはまた、「&」であると効果、およびなどの関節の2つ以上の条件を、見つけることができます。

item3 = df.loc[(df[str_feild] == item) & (df[prosys_name] == ps_name)]
n3 = item2[str_feild].count()

DF [str_feild] ==アイテムとDF [prosys_name] == ps_name)データ列を満足する統計。

  1. 辞書は、JSON形式を導出するフラスコ、Djangoのデータ・ソースのために使用することができます。
 save_path = sys.path[0] + json_path + str_feild_id + ".json"
        with open(save_path, 'w') as wr:
            json.dump(json_res, wr)
  1. パンダを有するデータの分析
    パンダを開始、多くの用途があり、より多くのnumpyの配列と行列に対して、numpyののアップグレードバージョンであると言うことができる、よりためパンダ
    高度なデータ処理と同様のエクセルSQLは、直接データベースとインターフェースすることができます、および複数のアクセスおよびエクスポート形式(共通がある
    ようなCSV、エクセル、JSON)は、大規模なデータは、ツールの処理ということができます。
公開された14元の記事 ウォンの賞賛6 ビュー1353

おすすめ

転載: blog.csdn.net/qq_43662503/article/details/104679163