質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

解決済

Pandasでsumifsのような集計(複数条件での集計)をしたい。

mulberryfields
mulberryfields

総合スコア0

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

1回答

0評価

0クリップ

5166閲覧

投稿2019/04/29 05:58

下記のように、工事一覧と支払一覧の表があります。

工事一覧

codeは工事番号、nameは工事名、complete_dateは完成日です。

codenamecomplete_date
1A2018/10/2
2B2018/11/2
3C2018/12/4
支払一覧

dateは支払日、codeは工事番号、amountは支払金額、month_endは支払日が属する月の末日

datecodeamountmonth_end
2018/10/1014000002018/10/31
2018/10/1023000002018/10/31
2018/10/1035000002018/10/31
2018/11/10110000002018/11/30
2018/11/10230000002018/11/30
2018/11/10320000002018/11/30
2018/12/10120000002018/12/31
2018/12/10230000002018/12/31
2018/12/1031000002018/12/31
2019/1/10102019/1/31
2019/1/1024000002019/1/31
2019/1/1036000002019/1/31

最終的に、下記のように、工事毎、支払毎の集計をしたいです。

番号リスト工事毎、支払毎の集計
code2018/10/312018/11/302018/12/312019/1/31
14000001000002000000
230000030000003000000400000
35000002000000100000600000

python

mport pandas as pd # 工事一覧のデータフレーム site_list_df = pd.DataFrame([ [1, 'A', '2018-10-2'], [2, 'B', '2018-11-2'], [3, 'C', '2018-12-2'] ], columns=['code', 'name', 'complete_date']) site_list_df['complete_date'] = pd.to_datetime(site_list_df['complete_date']) # 支払い情報のデータフレーム cost_list_df = pd.DataFrame([ ['2018/10/10', 1, 400000, '2018/10/31'], ['2018/10/10', 2, 300000, '2018/10/31'], ['2018/10/10', 3, 500000, '2018/10/31'], ['2018/11/10', 1, 1000000, '2018/11/30'], ['2018/11/10', 2, 3000000, '2018/11/30'], ['2018/11/10', 3, 2000000, '2018/11/30'], ['2018/12/10', 1, 2000000, '2018/12/31'], ['2018/12/10', 2, 3000000, '2018/12/31'], ['2018/12/10', 3, 100000, '2018/12/31'], ['2019/1/10', 2, 400000, '2019/1/31'], ['2019/1/10', 3, 600000, '2019/1/31'], ], columns=['cost_date', 'code', 'amount', 'month_end']) month_end_list = cost_list_df['month_end'].drop_duplicates()

上記の通り、コードを書いてみたのですが、どうしたらそのような集計ができるのか。分かりません。
エクセルであれば、sumifs関数を用いて、codeとmonth_endの条件で集計すれば良いかと思います。

未成工事支出金から、完成工事原価に振り替える会計処理をしたいと考えており、そのための集計をしたいと考えております。(工事完成までの間の支出は全て未成工事支出金に計上され、工事完成時に完成工事原価に振り替えます。工事完成後の支出はいったん未成工事支出金に計上され、月末に完成工事原価に振り替えます。)

お分かりの方、ご教示頂ければ幸いです。
宜しくお願い致します。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。