如何将多行数据转换为一行?(Python)
在我的硕士论文中,我试图根据一个人使用移动应用程序的方式找到不同类型的用户行为 我的数据集是.csv文件(日志文件)。我有来自许多Android用户的一个mounth应用程序使用情况的数据 对于每个用户,我收集了他与使用移动应用程序方式相关的日常互动,例如:如何将多行数据转换为一行?(Python),python,pandas,csv,Python,Pandas,Csv,在我的硕士论文中,我试图根据一个人使用移动应用程序的方式找到不同类型的用户行为 我的数据集是.csv文件(日志文件)。我有来自许多Android用户的一个mounth应用程序使用情况的数据 对于每个用户,我收集了他与使用移动应用程序方式相关的日常互动,例如:使用过的应用程序名称、类别应用程序、使用时间、使用频率、使用持续时间。我的数据集由9632行组成,分布在67个用户上 d=[[1,'2020-09-10','night','Settings','System tool',1,3.436],
使用过的应用程序名称、类别应用程序、使用时间、使用频率、使用持续时间。
我的数据集由9632行组成,分布在67个用户上
d=[[1,'2020-09-10','night','Settings','System tool',1,3.436],
[1,‘2020-09-11’、‘下午’、‘日历’、‘日历’、5、9.965],
[1,‘2020-09-11’、‘下午’、‘联系人’、‘电话和短信’、7、2.606],
[2,‘2020-09-11’、‘下午’、‘Facebook’、‘社交’、15、50.799],
[2,‘2020-09-11’、‘下午’、‘时钟’、‘系统工具’、2、5.223],
[3,'2020-11-18','morning','Contacts','Phone_and_SMS',3,1.726],
[3,'2020-11-18','morning','Google','Productivity',1,4.147],
[3,'2020-11-18','morning','Instagram','Social',1,0.501],
[4,'2020-11-18','morning','Truecaller','Communication',1,1.246],
[4,'2020-11-18','night','Instagram','Social',7103.774]]
df=pd.DataFrame(d,列=['UserId','Date','Part\u of\u day','Apps','Category','Frequency','Duration\u ToT'])
需要说明的是,以下是dataframe的一个示例:
UserId Date Part_of_day Apps Category Frequency Duration_ToT
1 2020-09-10 evening Settings System tool 1 3.436
1 2020-09-11 afternoon Calendar Calendar 5 9.965
1 2020-09-11 afternoon Contacts Phone_and_SMS 7 2.606
2 2020-09-11 afternoon Facebook Social 15 50.799
2 2020-09-11 afternoon clock System tool 2 5.223
3 2020-11-18 morning Contacts Phone_and_SMS 3 1.726
3 2020-11-18 morning Google Productivity 1 4.147
3 2020-11-18 morning Instagram Social 1 0.501
4 2020-11-18 morning Truecaller Communication 1 1.246
4 2020-11-18 night Instagram Social 7 103.774
由于我们的目标是发现不同类型的行为“行为集群”,我想知道如何将多行已用应用减少为每个用户使用的一个应用?为ML算法(如K-Means)设置条目(输入)。
我正在尝试减少数据帧行,以将每个用户表示为一行
我已经调查了按频率和持续时间排列的前五名应用程序,这是真的还是我应该尝试其他东西。我该怎么办?
请帮忙 使用pandas
groupby
&sort
它首先对每个用户的数据帧进行分组。现在,对于每个组,它按照频率
和持续时间_ToT
对数据帧进行排序,并取前5个元素
df.groupby(['UserId']).apply(lambda x:x.sort_值(按=['Frequency','Duration_ToT'],升序=False)。head(5))
您的要求是什么?您希望列中包含每个用户使用过的应用程序列表,还是希望列中包含每个应用程序的布尔值?如果您能向我们展示您的预期输出,那就更好了。我想要一个列,列出每个用户使用最多的应用程序。请发布您的预期输出不知道输出数据,我试图用一行来表示用户的交互(500行),这是可能的!