今回はPython3.11.5を使った。
https://www.python.org/downloads/windows/
python-3.11.5-amd64.exe
まあまあ時間かかる。。。。
システム環境変数追加なんで再起動して下さい。
F:\Python311に入れた
C:\Users\furcr>F:
F:>cd F:\Python311
F:\Python311>pip
動いたら
pip install pandas
動いたら
https://qiita.com/et47/items/ec05beb03c09d79a9f09
をやっていく
とりま
#仕訳をPandasのDataFrame形式で、仕訳帳 df_siwake に入力します。
#Siwakeクラスの関数 entry を呼び出すことで、df_siwakeに仕訳データの行を追加し、更新します。
#仕訳ルール①:借方(左側)、貸方(右側)に勘定科目と金額を記載する
#に従い、仕訳を入力するための空のDataFrameとして仕訳帳 df_siwake を作成します。
import pandas as pd
df_siwake = pd.DataFrame(index=[],columns=['仕訳番号', '日付', '借方科目', '借方金額', '貸方科目', '貸方金額'])
print("df_siwake= "+str(df_siwake))
#仕訳入力時に必ず貸借が一致していることにより、後ほど残高試算表を作るときにも、
#貸借金額が一致することが保証されます。
#そこで仕訳入力用のクラス Siwake を定義し、まずは①複合仕訳の入力に対応する形で
#関数 entry を定義します。
#※最終的には Siwake 内に②データ型チェック、③貸借一致チェックの関数を実装しますが、
#コードが長くなるため、末尾に補足として追記します。
class Siwake:
def __init__(self):
self.siwake_no = 0
print("self.siwake_no= "+str(self.siwake_no))
def entry(self, df, date, kari, kashi):
self.siwake_no += 1 # ...仕訳番号を更新
print("self.siwake_no= "+str(self.siwake_no))
for i in range(len(kari)): # ...複合仕訳に対応するため[借方科目、借方金額]の数だけループを回す
kari_entry = pd.Series([self.siwake_no] + [date] + kari[i] + ["", 0], index=df.columns)
print("kari_entry= "+str(kari_entry))
df = df._append(kari_entry, ignore_index=True)
for i in range(len(kashi)): # ...複合仕訳に対応するため[貸方科目、貸方金額]の数だけループを回す
kashi_entry = pd.Series([self.siwake_no] + [date] + ["", 0] + kashi[i], index=df.columns)
print("kashi_entry= "+str(kashi_entry))
df = df._append(kashi_entry, ignore_index=True)
return df
siwake = Siwake()
#仕訳①:会社を設立
#現金1000を元手に会社を設立しました。
#この元手のことを資本金と呼び、仕訳は以下の通りです。
print(u"------------会社を設立-----------")
df_siwake = siwake.entry(df_siwake, 20200401,[['現金', 1000]],[['資本金', 1000]])
df_siwake[df_siwake['仕訳番号']==siwake.siwake_no]
#仕訳②:商品の仕入
#商品500を外部業者より仕入れました。
#仕訳は以下の通りです。
print(u"------------商品の仕入-----------")
df_siwake = siwake.entry(df_siwake, 20200402,[['商品', 500]],[['買掛金', 500]])
df_siwake[df_siwake['仕訳番号']==siwake.siwake_no]
#仕訳③:商品を売上
#仕入れた商品のうち200について、価格300で販売しました。
#売上についての仕訳は以下の通りです。
print(u"------------商品を売上-----------")
df_siwake = siwake.entry(df_siwake, 20200403,[['売掛金', 300]],[['売上', 300]])
df_siwake[df_siwake['仕訳番号']==siwake.siwake_no]
#仕訳④:仕入代金を支払
#仕入代金500のうち300について、外部業者に支払いました。
#(残りの200は翌月支払の契約と仮定します)
#仕訳は以下の通りです。
print(u"------------仕入代金を支払-----------")
df_siwake = siwake.entry(df_siwake, 20200420,[['買掛金', 300]],[['現金', 300]])
df_siwake[df_siwake['仕訳番号']==siwake.siwake_no]
#仕訳⑤:販売代金を回収
#販売代金200について、販売先から現金で回収しました。
#(残りの100は翌月回収の契約と仮定します)
#仕訳は以下の通りです。
print(u"------------販売代金を回収-----------")
df_siwake = siwake.entry(df_siwake, 20200430,[['現金', 200]],[['売掛金', 200]])
df_siwake[df_siwake['仕訳番号']==siwake.siwake_no]
参考URL