我想根据用户ID、日期、类别(每天使用的频率)、每个类别的最大持续时间以及一天中使用最多的部分,将数据帧按不同列进行分组,最后将结果存储在.csv文件中
name duration UserId category part_of_day Date
Settings 3.436 1 System tool evening 2020-09-10
Calendar 2.167 1 Calendar night 2020-09-11
Calendar 5.705 1 Calendar night 2020-09-11
Messages 7.907 1 Phone_and_SMS night 2020-09-11
Instagram 50.285 9 Social night 2020-09-28
Drive 30.260 9 Productivity night 2020-09-28
df.groupby(["UserId", "Date","category"])["category"].count()
我的代码结果是:
UserId Date category
1 2020-09-10 System tool 1
2020-09-11 Calendar 8
Clock 2
Communication 86
Health & Fitness 5
但是我想要这个结果
UserId Date category count(category) max-duration
1 2020-09-10 System tool 1 3
2020-09-11 Calendar 2 5
2 2020-09-28 Social 1 50
Productivity 1 30
我该怎么做?我找不到任何解决方案想要的结果
资料
df:
分组:
您可以利用以下格式的pandas.DataFrame.groupby、pandas.DataFrame.aggregate和pandas.DataFrame.rename在一行中生成所需的输出:
代码:
输出:
使用
agg
:或者用
lambda x: x.max() - x.min()
替换np.ptp
相关问题 更多 >
编程相关推荐