python_tips
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')}
これらを組み合わせると結構いろいろ出来る