python小さな知識の蓄積---継続的な更新


  • 動作全体を空にしてresultを削除します.df[null_lis].dropna(axis=0, how=‘all’)
  • 3 3列の年月日を日付フィールド:pdに再編成する.PeriodIndex(year=no_equal_df[“add_year”], month=no_equal_df[“end_month”], day=no_equal_df[“end_day”], freq=“D”).to_datetime()

  • または:pd.to_datetime( (no_equal_df[“now_year”] + 1).astype(str) + “-” + “12” + “-” + “31”).dt.date
  • 日時を年月日カット:pd.DatetimeIndex(shanghai_df[“record_date”]).strftime("%Y%m")

  • 4.デカルト積:pd.MultiIndex.from_product([name_lis, date_df.record_date.tolist()], names=[‘product_name’, ‘report_date’]).to_frame(index=False)
    もう1つの直接インデックス:
    df = pd.DataFrame() df[“value”] =[“apple”,“hnhn”] df[“date”] = [“2014”,“2015”,“2016”] dyear_lis = [“2014”,“2015”,“2016”] df[‘index’] = list(np.arange(df.shape[0])) product_df = pd.DataFrame() product_df[‘product_name’] = dyear_lis * df.shape[0] product_df[‘index’] = list(np.arange(df.shape[0])) * len(dyear_lis) pd.merge(df, product_df, on=[‘index’], how=‘inner’)
  • エラーraise Exception(「エラーの実行日、実行開始」+run_date+「実行開始!」

  • 6.日付型データの複数列に対して最大値を求める場合、タイプはdatetimeではなくtimestrip型であるべきである
    7.1)Dataframeフィールドを打つ文字列の中で空またはn個が空のselfを取り除く.fund_code[~self.fund_code[“productName”].str.contains(r’^s*$’)]2)単一リスト内の複数の空文字からなる空文字列を除去する:list(filter(lambdas:s and(type(s)!=str or len(s.strip()) > 0), user_ids))
  • np.nan != np.nan注意取値時
  • 9リストから空の文字を削除:list(filter(None,list 1))
    10スクリプトに書かれた相対パスはローカルでのみ実行でき、プロジェクトに実行するときに絶対パスを書く必要があります.例:DAZIGUAN_PATH = rf"{BASE_DIR}{os.sep}algo{os.sep}daziguan{os.sep}"
    11:listの文字列を長さでソート:replace_lst.sort(key=lambda x: -len(x))
    12:複数列ソート:record_df.sort_values([‘topic’, ‘risk_type_score’, ‘event_score’], ascending=(1, 0, 0))
    13:json.dumps()int 32型データを解析できませんint 64 result_に変換する必要がありますdf[“data_type”].astype(np.int64)
    14:判断時間がある区間pdより大きい.Timedelta(hours=2)
    15:mysql暗号解読:SELECT HEX(AES_ENCRYPT(front_ratio,‘abc 123’))FROM py_etl_question_bank_financial_team_contrast;UPDATE py_etl_question_bank_financial_team_contrast set front_ratio=HEX(AES_ENCRYPT(front_ratio, ‘abc123’)) SELECT AES_DECRYPT(UNHEX(front_ratio), ‘abc123’) FROM py_etl_question_bank_financial_team_contrast ; pythonでhex_str = [“HEX(AES_ENCRYPT(’%s’, ‘%s’))” % (val, secret_key) for val in df[column]] hex_str = "select "+ ‘,’.join(hex_str) val_df = select_sql(sql_str=hex_str, conn_dic=dic_name)
  • ユニークインデックスを追加:ALTER TABLE product_price_all_market_gather ADD unique(cp_id,product_object);ユニークインデックスALTER TABLE product_price_all_market_gather DROP INDEX cp_を削除id_2

  • 17.2列の最大最小値横behavior_をとるdf[[“middle_ratio”, ‘middle_base’]].max(axis=1)
    18 apply複数のパラメータがどのようにパラメータを伝達するか
    19:一部の列を削除する:rel_province_df.drop_duplicates([‘temp_id’, split_name])
    20:日付差比較:
  • 2 2時間加算fail_df[“now_tergger_time”] = pd.to_datetime( time.strftime(’%Y-%m-%d %H:%M:%S’, time.localtime(time.time()))) fail_df[“diff_time”] = fail_df[“now_tergger_time”] - fail_df[“trigger_time”] value = pd.Timedelta(hours=2) fail_df[“diff_time”] > value
  • 現在時刻から差分時間を減算して比較now_time = pd.to_datetime(datetime.datetime.now() - datetime.timedelta(hours=2)) valid_df = run_df[run_df[“trigger_time”] > now_time]

  • 21:あるフィールドの一部を更新する:UPDATE job_schadul_trigger_info SET executor_param = REPLACE(executor_param, ‘http://quality-pro.pystandard.py//’, ‘http://quality-pro.pystandard.py/’) where job_desc LIke「品質管理2019%」;