こんにちは!
えねこのきつねです!
今回、特定の値毎に累積を詰めないかな?ということで作成してみました。
以下がpythonのソースとなります。
import numpy as np
import pandas as pd
import random
np.random.seed(1) # seedを1で固定
pd.set_option('display.max_rows', None) # すべての行を表示
tekitou_df = pd.DataFrame()
tekitou_df["column1"] = [int(i%10)+1 for i in range(100)]
tekitou_df["number"] = np.random.choice([0, 1], size=100)
# すべて1、0で置いたケースを作成 (確認用)
tekitou_df.loc[tekitou_df["column1"] == 1, "number"] = 1
tekitou_df.loc[tekitou_df["column1"] == 10, "number"] = 0
# column1行の、数値の種類ごとにカウント
tekitou_df['column1_cumcount'] = tekitou_df.groupby(['column1']).cumcount() + 1
# number_cumcount
tekitou_df['number_cumsum_by_column1'] = tekitou_df.groupby(['column1'])['number'].cumsum()
tekitou_df.sort_values(["column1", "column1_cumcount"])
column1_cumcountでcolumn1の出現?回数を累積し、
number_cumsum_by_column1では、column1毎のnumberを累積しています。
イメージ図
以上、復習用でした!