前提・実現したいこと
以下のプログラム内のデータを比較する方法を知りたいです。
比較したい内容は以下の通りです。
(比較内容)
Day1kiboutimeの各メンバーの各時間ごとに対し、shiftの時間(列)の内容をすべて比較し、Day1kiboutimeの要素が0かつshiftの要素が1のときFalse、その他の場合はTrueを返すものを作成したいです。
(Day1kiboutime(0,0)に対し、shift(0,0),(1,0),(2,0),(3,0),(4,0),(5,0)を比較し、Day1kiboutime(0,0)=0であるので、shift(a,b)=1のところはFalse,その他をTrueと返すということをしたいです。これをDay1kiboutimeの要素全てに対して行えるようにしたいです。)
該当のソースコード
python
1import pandas as pd 2 3#アルバイトの集合 4n_member = 5 5member = pd.Series(f"member{m+1}" for m in range(n_member)) 6 7#時刻の集合 8n_time = 9 9time = pd.Series(f"{t+12}時" for t in range(n_time)) 10#t時 : t時~t+1時 11 12#シフト番号 13n_shiftnumber = 6 14shiftnumber = pd.Series(f"shift{sn+1}" for sn in range(n_shiftnumber)) 15 16#シフトの一覧 17shift = pd.DataFrame([[0, 0, 0, 0, 0, 0, 0, 0, 0], 18 [1, 1, 1, 1, 1, 1, 1, 1, 1], 19 [1, 1, 1, 0, 0, 0, 0, 0, 0], 20 [0, 0, 0, 1, 1, 1, 0, 0, 0], 21 [0, 0, 0, 0, 0, 0, 1, 1, 1], 22 [1, 1, 1, 0, 0, 0, 1, 1, 1]], index=shiftnumber, columns=time) 23 24#希望出勤時間(Day1) 25Day1kiboutime = pd.DataFrame([[0, 0, 0, 1, 1, 1, 0, 0, 0], 26 [0, 0, 0, 1, 1, 1, 0, 0, 0], 27 [1, 1, 1, 0, 0, 0, 1, 1, 1], 28 [1, 1, 1, 0, 0, 0, 1, 1, 1], 29 [0, 0, 0, 0, 0, 0, 0, 0, 0]], index=member, columns=time) 30
試したこと
以下の内容を試してみました。
エラー自体は発生しなかったのですが、内容を確認したのですが、True,False以外に0という表記が出てきてしまいました。
python
1for m in range(member.size): 2 for t in range(time.size): 3 for s in range(n_shiftnumber): 4 if Day1kiboutime.iloc[m,t] == 0 and shift.iloc[s,t] == 1: 5 False 6 else: 7 True
一方的な質問になってしまい申し訳ありません。
ご教授していただけると幸いです。よろしくお願いします。