1 回答
TA贡献1804条经验 获得超7个赞
我不确定我完全理解你想要做什么,但这里有一些可能有用的东西
df = pd.DataFrame([users,time]).T
df.columns = ['users','time']
def filter_time_range(ele,trange):
if (ele>trange[0]) and (ele<=trange[1]):
return ele
else:
return np.nan
sub_group_ranges = [(0,0),(20,30),(40,50),(60,60)]
for trange in sub_group_ranges:
df[str(trange)] = df['time'].apply(lambda x: filter_time_range(x,trange))
df
导致
users time (0, 0) (20, 30) (40, 50) (60, 60)
0 A 0 NaN NaN NaN NaN
1 A 10 NaN NaN NaN NaN
2 A 20 NaN NaN NaN NaN
3 A 30 NaN 30.0 NaN NaN
4 B 40 NaN NaN NaN NaN
5 B 50 NaN NaN 50.0 NaN
6 C 60 NaN NaN NaN NaN
以及您的用户分组
df.groupby(['users']).sum()
(0, 0) (20, 30) (40, 50) (60, 60)
users
A 0.0 30.0 0.0 0.0
B 0.0 0.0 50.0 0.0
C 0.0 0.0 0.0 0.0
我已从amount我的数据框中排除
添加回答
举报