columnsNの条件に基づくcolumnAのPythonDataFrame合計値

クリストファーン

さまざまなタイプのさまざまなオプションのアカウントのグループがあり、2014年と2015年に使用された平均金額と比較した2016年の各ユーザーの毎月の節約額を計算しようとしています。私のDataFrameは次のようになります。

key amount  id  month   opt type    year
0   100     5   1       M   E       2014
1   200     5   1       M   G       2014
2   300     5   1       R   E       2014
3   400     5   1       R   G       2014
4   105     5   1       M   E       2015
5   205     5   1       M   G       2015
6   305     5   1       R   G       2015
7   405     5   1       R   E       2015
8   90      5   1       M   E       2016
9   180     5   1       M   G       2016
10  310     5   1       R   G       2016
11  350     5   1       R   E       2016

上記に基づいて、ユーザー「5」は、2015年と2016年の平均「amt」102.5と比較して、オプション「M」を使用した「タイプ」「E」の2016年1月に12.5を節約したと予想します。

2016年の1か月目に、さまざまなタイプに期待する完全な回答は次のとおりです。

M|E -12.5
M|G -22.5
R|E  -2.5
R|G -42.5

groupby()関数がこれで機能するかもしれないと思いましたが、私が開発した式では正しい答えが得られません。

df_savings = df.groupby(['id','year','month','type','opt'], group_keys=False).apply(
         lambda s: float(s['amount'][s.year < 2016].sum()/float(2)) - float(s['amount'][s.year == 2016].sum()))

どんな助けでも大歓迎です。上記のサンプルdfに使用されるコードは次のとおりです。

df = pd.DataFrame({'id':[5,5,5,5,5,5,5,5,5,5,5,5],
               'type':['E','G','E','G','E','G','G','E','E','G','G','E'],
               'opt':['M','M','R','R','M','M','R','R','M','M','R','R'],
            'year':[2014,2014,2014,2014,2015,2015,2015,2015,2016,2016,2016,2016],
            'month':[1,1,1,1,1,1,1,1,1,1,1,1],
            'amount':[100,200,300,400,105,205,305,405,90,180,310,350]
            })
al0

2016と2014-15の2つの部分に分割してから、groupbyを実行すると、2つの同様のデータフレームを減算できます。

df[df.year == 2016].groupby(['id', 'month', 'opt', 'type'])['amount'].sum() - df[df.year < 2016].groupby(['id', 'month', 'opt', 'type'])['amount'].mean()

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

パンダの条件に基づく列値の合計

分類Dev

複数の条件に基づくExcelの合計値

分類Dev

行列条件に基づくExcelの合計

分類Dev

条件に基づく列の合計

分類Dev

現在の合計値に基づく条件でSUM()OVER

分類Dev

col値に基づくMySQLの合計

分類Dev

親に基づく子の合計値

分類Dev

行と列の条件の基準に基づく合計

分類Dev

条件に基づく合計

分類Dev

Rのifelse条件に基づくdata.frameの列の合計?

分類Dev

Mongo-名前に基づく値の合計の集計

分類Dev

条件に基づくSQLServerの現在の合計

分類Dev

特定の条件に基づく動的列の合計

分類Dev

他の列の条件に基づく累積合計

分類Dev

Excelの基準に基づく合計

分類Dev

他の列の値に基づく現在の合計

分類Dev

MySQL:別の列の値に基づく列の合計

分類Dev

右上のセルの値に基づくセルの合計

分類Dev

別の列の値に基づく列の累積合計(R)

分類Dev

Rの他の列に基づく列値の合計

分類Dev

特定の条件に基づく累積合計

分類Dev

R:条件に基づく単一列の合計

分類Dev

条件に基づく隣接する列の合計

分類Dev

位置桁の合計(位置に基づく2つの数値の桁の合計)

分類Dev

Matlabのdatenumに基づく列値の合計

分類Dev

列の値に基づく時系列の合計

分類Dev

値に基づく2つのテーブル列の合計

分類Dev

スカラのキーに基づく値の合計

分類Dev

特定の列の値に基づく累積合計