在我的数据框中,我想对列中的某些行求和并将它们输出到新列“UE_more_days”中
是
ATEXT BEGUZ_UE UE_more_days
0 11.00 0.0
1 CT 23.00 Nan
2 RT 33.00 46.0
3 15.00 0.0
3 15.00 0.0
4 12.75 0.0
5 19.75 0.0
6 14.75 0.0
7 CT 23.00 29.5
8 CT 24.00 46.0
9 CT 24.00 48.0
10 RT 33.00 48.0
11 15.00 0.0
12
etc
应该是
ATEXT BEGUZ_UE UE_more_days
0
1 CT 23.00
2 RT 33.00 56.0
3 15.00
4 12.75
5 19.75
6 14.75
7 CT 23.00
8 CT 24.00
9 CT 24.00
10 RT 33.00 104.0
11 15.00
12
etc
我最后一次尝试
bedd2 = [(df['ATEXT'] != ''),]
result2 = [(df.iloc[0:]['BEGUZ_UE'].astype(float).reset_index(drop=True) +
df.iloc[1:]['BEGUZ_UE'].astype(float)).round(decimals=2).shift(1)]
df['min_UE_mehr_Tage'] = np.select(bedd2, result2)
如何根据条件对列中的行求和并将其输出到新列中?
将 BEGUZ_UE 中 ATEXT 等于“”的值替换为 Nan,然后根据相同条件创建组。
m = df['ATEXT'].eq("")
df['UE_more_days'] = (df['BEGUZ_UE'].mask(m)
.groupby(m.cumsum()).cumsum()
.where(df['ATEXT'].eq('RT'))
)
最终结果:
ATEXT BEGUZ_UE UE_more_days
11.00 NaN
CT 23.00 NaN
RT 33.00 56.0
15.00 NaN
15.00 NaN
12.75 NaN
19.75 NaN
14.75 NaN
CT 23.00 NaN
CT 24.00 NaN
CT 24.00 NaN
RT 33.00 104.0
15.00 NaN