前提・実現したいこと
Python初心者です。よろしくお願いします。
現在アルバイト先のシフト作成について考えています。
以下のプログラムでシフトの一覧を表記しています。
該当のソースコード
python
1#アルバイトの集合 2n_member = 3 3member = pd.Series(f"member{m+1}" for m in range(n_member)) 4 5#日にちの集合 6n_day = 1 7day = pd.Series(f"day{d+1}" for d in range(n_day)) 8 9#時刻の集合 10n_time = 9 11time = pd.Series(f"{t+12}時" for t in range(n_time)) 12 13#シフト番号 14n_shiftnumber = 5 15shiftnumber = pd.Series(f"shift{sn+1}" for sn in range(n_shiftnumber)) 16 17#シフトの一覧 18shift = [ 19 [0, 0, 0, 0, 0, 0, 0, 0, 0], 20 [1, 1, 1, 1, 1, 1, 0, 0, 0], 21 [0, 0, 0, 0, 1, 1, 1, 1, 1], 22 [1, 1, 1, 0, 0, 1, 1, 1, 1], 23 [1, 1, 1, 1, 0, 0, 1, 1, 1], 24 ] 25dfshift = pd.DataFrame(shift, 26 index=shiftnumber, 27 columns=time 28 ) 29shiftdaycount = [int(sum(x) > 0) for x in shift] 30 31#希望出勤日 32kibou = pd.DataFrame([[1], 33 [1], 34 [1]], index=member, columns=day)
shiftdaycountでは0を休み、1を出勤パターンとしており、最後に記載した希望出勤日が0の場合、shiftdaycountは0となり、1の場合はshiftdaycountが1の中から、条件に応じて最適なものを選択するプログラムを作成予定です。
ここでお聞きしたいことは、この直接打ち込んでいるシフトパターンを以下のようにcsvファイルに置き換えたのですが、エラーが起こりました。
該当のソースコード
python
1#アルバイトの集合 2n_member = 3 3member = pd.Series(f"member{m+1}" for m in range(n_member)) 4 5#日にちの集合 6n_day = 1 7day = pd.Series(f"day{d+1}" for d in range(n_day)) 8 9#時刻の集合 10n_time = 9 11time = pd.Series(f"{t+12}時" for t in range(n_time)) 12 13#シフト番号 14n_shiftnumber = 5 15shiftnumber = pd.Series(f"shift{sn+1}" for sn in range(n_shiftnumber)) 16 17#シフトの一覧 18shift = pd.read_csv('shift.csv', header=None) 19shift.index = shiftnumber 20shift.columns = time 21 22shiftdaycount = [int(sum(sdc) > 0) for sdc in shift] 23 24#希望出勤日 25kibou = pd.DataFrame([[1], 26 [1], 27 [1]], index=member, columns=day)
発生している問題・エラーメッセージ
shiftdaycount = [int(sum(sdc) > 0) for sdc in shift] TypeError: unsupported operand type(s) for +: 'int' and 'str'
一方的な質問になってしまい申し訳ないのですが、ご回答いただけると幸いです。
よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/11/23 12:54