[英]Sum specific cells in a Pandas dataframe
將GroupBy.transform
與 sum 用於新列填充的聚合值,如果只需要填充最后一行,則向DataFrame.loc
添加掩碼:
np.random.seed(2020)
df = pd.DataFrame(np.random.randint(10, size=(10000, 4))).add_prefix('col')
a = df.index
#if not default index
#a = np.arange(len(df))
df['sum1'] = df.iloc[:, 3].groupby(a // 10).transform('sum')
df.loc[a % 10 == 9, 'sum2'] = df.iloc[:, 3].groupby(a // 10).transform('sum')
print (df.head(20))
col0 col1 col2 col3 sum1 sum2
0 0 8 3 6 44 NaN
1 3 3 7 8 44 NaN
2 0 0 8 9 44 NaN
3 3 7 2 3 44 NaN
4 6 5 0 4 44 NaN
5 8 6 4 1 44 NaN
6 1 5 9 5 44 NaN
7 6 6 6 5 44 NaN
8 4 6 4 2 44 NaN
9 3 4 7 1 44 44.0
10 4 9 3 2 40 NaN
11 0 9 1 2 40 NaN
12 7 1 0 2 40 NaN
13 8 8 5 6 40 NaN
14 3 3 0 0 40 NaN
15 4 6 6 8 40 NaN
16 9 9 9 5 40 NaN
17 1 9 0 1 40 NaN
18 7 5 0 7 40 NaN
19 1 3 7 7 40 40.0
按row//10
groupby
row//10
; 取每組的平均值。 這能讓你動起來嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.