Code

python_tips

code-icon

category:code:python_tips

後で自分がコピペする用のいろいろ

1:excelファイルを行ごとに読み込む
主な仕様ライブラリ:pandas(xlrdとopenpyxlもインストール)
やりたかったこと:エクセルファイルの表を行ごとに取り出して利用。

登録テスト.xlsx
ID 登録日
10 2021/6/1
15 2021/7/1

◇データフレームとして格納編

    data_file = pd.read_excel("登録テスト.xlsx")
    arg_df = data_file[["ID", "登録日"]].values
    for row in arg_df:
        print(row[0],row[1])
        #10 2021-06-01 00:00:00
        #15 2021-07-01 00:00:00     

forの下にpyautoguiのコードが来て、システムへの自動入力など。


◇職場の会計ソフトの日付入力形式が、令和3年6月1日="5030601"なので変換

    import pandas as pd
    data_file = pd.read_excel("登録テスト.xlsx")
    arg_df = data_file[["ID", "登録日"]].values
    for row in arg_df:
        ID = str(int(row[0]))
        ymd = row[1]
        alt_y = "5" + str("{0:02d}".format(ymd.year - 2018))
        alt_m = str("{0:02d}".format(ymd.month))
        alt_d = str("{0:02d}".format(ymd.day))
        alt_ymd = alt_y + alt_m + alt_d
        print(ID, alt_ymd)
        if ID == "":
            break #空白セルが生きているときがあるので一応処理
        #10 5030601
        #15 5030701

ニッチすぎるが私には汎用性のあるコードなので(笑)


◇dictとして格納したいとき編

    import pandas as pd
    hoge_data = pd.read_excel("登録テスト.xlsx")
    hoge_df = hoge_data[["ID", "登録日"]].values
    hoge_dic = {}
    for drug in hoge_df:
        key = drug[0]
        value = drug[1]
        hoge_dic[key] = value
    print(hoge_dic)
    #{10: Timestamp('2021-06-01 00:00:00'), 15: Timestamp('2021-07-01 00:00:00')}

これらを組み合わせると結構いろいろ出来る