如何在数据帧中插入数据帧

2024-04-20 00:01:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个数据帧,它们有一个共同的列:用户和应用程序。 每个用户可以有多个应用程序,每个应用程序将有名称和安装日期。你知道吗

加入两个数据帧后,我得到:

user_id ...  app_name  ins_date
user1   ...   app1      1/1/2020
user1   ...   app2      1/7/2020
user2   ...   NULL      NULL
user3   ...   app1      1/5/2020
user4   ...   app1      1/3/2020

我想避免重复用户,但不丢失应用程序的详细信息。是否可以将应用程序的df插入到用户的df中?你知道吗

比如:

user_id ...  app
user1   ...   {'app_name': ['app1', 'app2'], 'ins_date': ['1/1/2020', '1/7/2020']}
user2   ...   NULL      
user3   ...   {'app_name': ['app1'], 'ins_date': ['1/5/2020']}
user4   ...   {'app_name': ['app1'], 'ins_date': ['1/3/2020']}  

我试过DataFrameGroupBy.apply(),但我只能列出其中一列。你知道吗

还有别的办法吗?你知道吗


Tags: 数据用户nameidapp应用程序datenull
1条回答
网友
1楼 · 发布于 2024-04-20 00:01:34

你可以试试这个

df.groupby('user_id').apply(lambda x: {'app_name': x['app_name'].tolist(), 'ins_date': x['ins_date'].tolist()})

输出

user_id
user1    {'app_name': ['app1', 'app2'], 'ins_date': ['1/1/2020', '1/7/2020']}
user2    {'app_name': [nan], 'ins_date': [nan]}                              
user3    {'app_name': ['app1'], 'ins_date': ['1/5/2020']}                    
user4    {'app_name': ['app1'], 'ins_date': ['1/3/2020']}                    
dtype: object

更新:已使用pd.set\U选项('display.max\列宽',-1)以显示最大列宽度

相关问题 更多 >